彿°è¿åå¼
彿°è¿å弿¯æ¬ç« 䏿åä¸ä¸ªåºç¡æ¦å¿µãæäºå½æ°å¨æ§è¡å®æ¯åä¸ä¼è¿åä¸ä¸ªæç¨çå¼ï¼ä½æäºä¼ï¼éè¦çæ¯çè§£è¿åçæ¯ä»ä¹ï¼ææ ·å¨ä½ ç代ç ä¸ä½¿ç¨è¿äºå¼ï¼æä»¬å°å¨ä¸é¢è®¨è®ºè¿äºã
| åæï¼ |
äºè§£ HTML å CSS åºç¡ï¼çæä¸ä¸è¯¾æä»ç»ç JavaScript 彿°åºç¡ã |
|---|---|
| å¦ä¹ ææï¼ |
|
ä»ä¹æ¯è¿åå¼ï¼
è¿å弿å¦å ¶åï¼æ¯æå½æ°æ§è¡å®æ¯åè¿åçå¼ãä½ å·²ç»å¤æ¬¡éè§è¿è¿åå¼ï¼å°½ç®¡ä½ å¯è½æ²¡ææç¡®çèèè¿ä»ä»¬ã
让æä»¬å顾ä¸ä¸ªçæçä¾åï¼æ¥èªæ¬ç³»åä¹åçä¸ç¯æç« ï¼ï¼
const myText = "天æ°å¾å·";
const newString = myText.replace("å·", "ç");
console.log(newString); // åºè¾åºâ天æ°å¾çâ
// replace() åç¬¦ä¸²å½æ°æ¥åæºå符串åç®æ å符串ï¼
// å°æºåç¬¦ä¸²æ¿æ¢ä¸ºç®æ å符串ï¼å¹¶è¿åæ°å½¢æçå符串
æä»¬å¯¹ myText å符串è°ç¨ replace() 彿°ï¼å¹¶æ¥æ¶ä¸¤ä¸ªåæ°ï¼
- è¦æ¥æ¾çåå符串ï¼
"å·"ï¼ã - ç¨äºæ¿æ¢çå符串ï¼
"ç"ï¼ã
å½è¿ä¸ªå½æ°å®æï¼å®æè¿è¡ï¼åï¼å®è¿åä¸ä¸ªå¼ï¼è¿ä¸ªå¼æ¯ä¸ä¸ªæ°çå符串ï¼å®å
·ææ¿æ¢çåè½ãå¨ä¸é¢ç代ç ä¸ï¼æä»¬ä¿åè¿ä¸ªè¿åå¼ï¼ä»¥ä½ä¸º newString åéçå
容ã
å¦æä½ æ¥ç MDN ææ¡£ä¸ replace() 彿°ç页é¢ï¼ä½ ä¼çå°å«åè¿åå¼çç« èãçè§£å½æ°çè¿åå¼é常å
³é®ï¼å æ¤æä»¬å°½å¯è½å¨ææ¡£ä¸æä¾æ¤ç±»ä¿¡æ¯ã
ä¸äºå½æ°ä¸è¿åä»»ä½å¼ï¼å¨æä»¬çåè页ä¸ï¼è¿ç±»å½æ°çè¿åå¼å¨ææ¡£ä¸æ è®°ä¸ºç©ºå¼ void ææªå®ä¹å¼ undefinedï¼ãä¾å¦ï¼åä¸ç¯æç« ä¸ç¼åç displayMessage() 彿°å¨è¢«è°ç¨æ¶ä¸ä¼è¿åç¹å®å¼ï¼å®ä»
è´è´£å¨å±å¹ä¸æ¾ç¤ºä¸ä¸ªå¼¹çªã
ä¸è¬æ¥è¯´ï¼è¿åå¼ç¨äºå½æ°ä½ä¸ºè®¡ç®çä¸é´æ¥éª¤ãåè®¾ä½ éè¦å¾å°ä¸ä¸ªæç»ç»æï¼èè¯¥ç»æä¾èµäºæäºéè¦éè¿å½æ°è®¡ç®çå¼ã彿°è®¡ç®å®æåï¼å¯ä»¥éè¿è¿åå¼å°ç»æåå¨å¨åéä¸ï¼ä¾åç»è®¡ç®ä½¿ç¨ã
å¨èªå®ä¹ç彿°ä¸ä½¿ç¨è¿åå¼
è¦ä»èªå®ä¹å½æ°è¿åå¼ï¼ä½ éè¦ä½¿ç¨ return å
³é®åãæä»¬æè¿å¨ random-canvas-circles.html 示ä¾ä¸è§è¿æ¤ç¨æ³ãæä»¬ç draw() ä¼å¨ HTML <canvas> å
ç´ ä¸éæºç»å¶ 100 个ååï¼
function draw() {
ctx.clearRect(0, 0, WIDTH, HEIGHT);
for (let i = 0; i < 100; i++) {
ctx.beginPath();
ctx.fillStyle = "rgb(255 0 0 / 50%)";
ctx.arc(random(WIDTH), random(HEIGHT), random(50), 0, 2 * Math.PI);
ctx.fill();
}
}
卿¯æ¬¡å¾ªç¯ä¸ï¼random() 彿°è¢«è°ç¨äºä¸æ¬¡ï¼åå«çæååç x åæ ãy åæ ååå¾çéæºå¼ãrandom() 彿°æ¥æ¶ä¸ä¸ªæ´æ°åæ°ï¼å¹¶è¿åä¸ä¸ªä»äº 0 å°è¯¥åæ°çéæºæ´æ°ï¼
function randomNumber(number) {
return Math.floor(Math.random() * number);
}
è¿ä¸ªå½æ°ä¹å¯ä»¥åæè¿æ ·ï¼
function randomNumber(number) {
const result = Math.floor(Math.random() * number);
return result;
}
使¯ç¬¬ä¸ä¸ªçæ¬åèµ·æ¥æ´å¿«ï¼è䏿´ç®æ´ã
æä»¬æ¯æ¬¡è°ç¨å½æ°é½è¿å Math.floor(Math.random() * number) ç计ç®ç»æã该è¿åå¼ä¼ç´æ¥åºç°å¨å½æ°è¢«è°ç¨çä½ç½®ï¼ä»£ç éåç»§ç»æ§è¡åç»é»è¾ã
ä¾å¦ï¼å½æ§è¡ä»¥ä¸ä»£ç æ¶ï¼
ctx.arc(random(WIDTH), random(HEIGHT), random(50), 0, 2 * Math.PI);
åè®¾ä¸æ¬¡ random() è°ç¨åå«è¿å 500ã200 å 35ï¼åè¿è¡ä»£ç å®é
çä»·äºï¼
ctx.arc(500, 200, 35, 0, 2 * Math.PI);
é¦å è¿è¡è¯¥è¡ç彿°è°ç¨ï¼å¹¶å°å ¶è¿å弿¿æ¢ä¸ºå½æ°è°ç¨ï¼ç¶ååæ§è¡è¯¥è¡æ¬èº«ã
主å¨å¦ä¹ ï¼æä»¬èªå·±çè¿åå¼å½æ°
让æä»¬çæç¼åå ·ææä»¬èªå·±çè¿åå¼ç彿°ã
-
é¦å ï¼ä» GitHub ç function-library.html æä»¶å¤å¶ä¸ä»½æ¬å°å¯æ¬ãè¿ä¸ªç®åç HTML 页é¢å å«ä¸ä¸ª
<input>ææ¬æ¡åä¸ä¸ªæ®µè½ãè¿æä¸ä¸ª<script>å ç´ ï¼æä»¬å¨å ¶ä¸ç¨ä¸¤ä¸ªåéé¢åäºå¯¹ä¸¤ä¸ª HTML å ç´ çå¼ç¨ãè¿ä¸ªé¡µé¢å è®¸ä½ å¨ææ¬æ¡ä¸è¾å ¥ä¸ä¸ªæ°åï¼å¹¶å¨ä¸æ¹æ¾ç¤ºä¸è¯¥æ°åç¸å ³çä¸åæ°åã -
å¨
scriptå ç´ ä¸å·²æç两è¡ä»£ç 䏿¹ï¼æå ¥è¿ä¸ä¸ªå½æ°ï¼jsfunction squared(num) { return num * num; } function cubed(num) { return num * num * num; } function factorial(num) { var x = num; while (x > 1) { num *= x - 1; x--; } return num; }squared()åcubed()彿°å¦å ¶åç§°æç¤ºï¼è¿åå®ä»¬åæ°çå¹³æ¹åç«æ¹ãfactorial()彿°è¿åç»å®æ°åçé¶ä¹ã -
å¨ç°æå½æ°ä¸æ¹ï¼æ·»å 以ä¸äºä»¶å¤çç¨åºï¼å®ç°æå°ææ¬è¾å ¥æ¡ä¸æ°åä¿¡æ¯çåè½ï¼
jsinput.addEventListener("change", () => { const num = parseFloat(input.value); if (isNaN(num)) { para.textContent = "You need to enter a number!"; } else { para.textContent = `${num} squared is ${squared(num)}. `; para.textContent += `${num} cubed is ${cubed(num)}. `; para.textContent += `${num} factorial is ${factorial(num)}. `; } }); -
ä¿å代ç ï¼å¨æµè§å¨ä¸å 载并æµè¯ã
ä¸é¢æ¯å¯¹ä¸è¿°æ¥éª¤ 3 ä¸ç addEventListener 彿°çä¸äºè§£éï¼
- éè¿ä¸º
changeäºä»¶æ·»å çå¬å¨ï¼å½ææ¬è¾å ¥æ¡çå¼åçååå¹¶æäº¤æ¶ï¼ä¾å¦è¾å ¥å¼åï¼éè¿æ Tab æ Return ç§»åºè¾å ¥ç¦ç¹ï¼ï¼è¯¥å¿å彿°ä¼æ§è¡ã彿°è¿è¡æ¶ï¼è¾å ¥æ¡çå¼ä¼è¢«åå ¥å¸¸é numã - if è¯å¥å¨è¾å
¥å¼éæ°åæ¶æ¾ç¤ºé误信æ¯ãæ¡ä»¶å¤æä½¿ç¨
isNaN(num)æ£æµæ¯å¦ä¸ºtrueãisNaN()æ£æ¥num弿¯å¦ä¸ä¸ºæ°å ââ 妿ä¸ä¸ºæ°åï¼åè¿åtrueï¼å¦åè¿åfalseã - è¥æ¡ä»¶è¿å
falseï¼ånumæ¯æææ°åï¼å½æ°ä¼å¨æ®µè½å ç´ ä¸è¾åºè¯¥æ°åçå¹³æ¹ãç«æ¹åé¶ä¹å¼ãè¿äºå¼éè¿è°ç¨squared()ãcubed()åfactorial()彿°è®¡ç®å¾åºã
夿³¨ï¼è¥ç¤ºä¾è¿è¡å¤±è´¥ï¼å¯å¯¹æ¯ GitHub ä¸ç宿çï¼ææ¥ç宿¶æ¼ç¤ºï¼ï¼ä¹å¯èç³»æä»¬å¯»æ±å¸®å©ã
è½®å°ä½ äºï¼
ç°å¨ï¼å°è¯ç¼åèªå·±ç彿°å¹¶æ·»å å°å½æ°åºä¸ãæ¯å¦è®¡ç®å¹³æ¹æ ¹ãç«æ¹æ ¹ï¼æç»å®åå¾çåå¨é¿ï¼
éå 彿°ç¼å建议ï¼
- å¦ä¹ å ¶ä»å½æ°çé误å¤ç示ä¾ã建议éªè¯å¿ è¦åæ°ï¼å¹¶ä¸ºå¯éåæ°æä¾é»è®¤å¼ï¼ä»¥åå°ç¨åºæ¥éã
- èèåå»ºå½æ°åºãéçç¼ç¨ç»éªç§¯ç´¯ï¼ä½ ä¼éå¤ä½¿ç¨æäºåè½ã建ç«èªå·±çå·¥å ·å½æ°åºæ¯é«æçéæ©ï¼å¯è½»æ¾ç§»æ¤å°æ°é¡¹ç®æç´æ¥åºç¨äº HTML 页é¢ã
æè½æµè¯
æ¬æå·²ç»æï¼ä½ æ¯å¦ææ¡äºæ ¸å¿ç¥è¯ï¼å¯éè¿å½æ°æµè¯æ£éªææã
æ»ç»
彿°æ¢æè¶£åå®ç¨ã尽管æ¶å大éè¯æ³ååè½ç»èï¼ä½å ¶æ ¸å¿æ¦å¿µæäºçè§£ã
妿çé®ï¼å¯éæ¶éè¯»æ¬ææèç³»æä»¬å¯»æ±å¸®å©ã
åè§
- æ·±å ¥äºè§£å½æ°ââæ¶µçé«é¶å½æ°ç¥è¯çè¯¦ç»æåã
- JavaScript çåè°å½æ°ââ常è§ç JavaScript æ¨¡å¼æ¯å°å½æ°ä½ä¸ºåæ°ä¼ å ¥å¦ä¸å½æ°å¹¶å¨å é¨è°ç¨ãè¿æç¹è¶ åºæ¬è¯¾ç¨çèå´ï¼ä½å¼å¾å¨ä¸ä¹ ä¹åè¿è¡ç ç©¶ã