å¨ JavaScript ä¸å¦ä¸ä¸ªåºæ¬æ¦å¿µæ¯å½æ°, å®å è®¸ä½ å¨ä¸ä¸ªä»£ç åä¸åå¨ä¸æ®µç¨äºå¤çåä»»å¡ç代ç ï¼ç¶åå¨ä»»ä½ä½ éè¦çæ¶åç¨ä¸ä¸ªç®ççå½ä»¤æ¥è°ç¨ï¼è䏿¯æç¸åç代ç åå¾å¤æ¬¡ã卿¬æä¸ï¼æä»¬å°æ¢ç´¢å½æ°çåºæ¬æ¦å¿µï¼å¦å½æ°çåºæ¬è¯æ³ãå¦ä½å®ä¹åè°ç¨å½æ°ã彿°çä½ç¨åååæ°ã
åæï¼ åºæ¬ççµèç¥è¯ï¼å¯¹ HTML ä¸ CSS æåºæ¬çäºè§£ï¼åå·²é 读ï¼JavaScript ç¬¬ä¸æ¥ã ç®æ ï¼ äºè§£ Javascript 彿°èåçåºæ¬æ¦å¿µã æè½å¨åªæ¾å°å½æ°ï¼å¨ JavaScript ä¸ï¼ä½ å°åç°å½æ°æ å¤ä¸å¨ãäºå®ä¸ï¼å°ç®å为æ¢ï¼æä»¬ä¸ç´å¨ä½¿ç¨å½æ°ï¼æä»¬åªæ¯è¿æ²¡æ£å¼å°è®¨è®ºå®ä»¬ãç¶èç°å¨æ¯æ¶åäºï¼è®©æä»¬å¼å§èè彿°ï¼å¹¶æ¢ç´¢å®ä»¬çè¯æ³ã
å ä¹ä»»ä½æ¶åï¼åªè¦ä½ 使ç¨ä¸ä¸ªå¸¦æä¸å¯¹åæ¬å·ï¼()
ï¼ç JavaScript ç»æï¼å¹¶ä¸ä½ 没æä½¿ç¨æ¯å¦ for 循ç¯ãwhile æ do...while 循ç¯ï¼æè
if...else è¯å¥è¿æ ·ç常è§çå
ç½®è¯è¨ç»ææ¶ï¼é£ä¹ä½ å°±æ£å¨ä½¿ç¨å½æ°ã
å¨è¿å¥è¯¾ç¨ä¸æä»¬å·²ç»ä½¿ç¨äºå¾å¤æµè§å¨å ç½®å½æ°ã
ä¾å¦ï¼å½æä»¬æä½ä¸ä¸ªåç¬¦ä¸²çæ¶åï¼
const myText = "ææ¯ä¸ä¸ªå符串";
const newString = myText.replace("å符串", "é¦è ");
console.log(newString);
// replace() åç¬¦ä¸²å½æ°æ¥åæºå符串åç®æ å符串ï¼
// å°æºåç¬¦ä¸²æ¿æ¢ä¸ºç®æ å符串ï¼å¹¶è¿åæ°å½¢æçå符串
æè 彿们æä½ä¸ä¸ªæ°ç»çæ¶åï¼
const myArray = ["æ", "ç±", "å·§å
å", "éè"];
const madeAString = myArray.join(" ");
console.log(madeAString);
// join() 彿°æ¥åä¸ä¸ªæ°ç»ï¼
// å°æææ°ç»å
ç´ è¿æ¥æä¸ä¸ªåä¸çå符串ï¼å¹¶è¿åè¿ä¸ªæ°å符串
æè 彿们çæä¸ä¸ªéæºæ°æ¶ï¼
const myNumber = Math.random();
// random() 彿°çæä¸ä¸ªéæº
// æ°åå¨ 0 å 1 ä¹é´ï¼å¹¶è¿å该æ°å
æä»¬é½å¨ä½¿ç¨å½æ°ï¼
夿³¨ï¼ 妿éè¦ï¼ä½ å¯ä»¥éæå°è¿äºä»£ç è¾å ¥æµè§å¨æ§å¶å°ä»¥ä¾¿äºä½ çæå ¶åè½ã
JavaScript è¯è¨ä¸æè®¸å¤å ç½®ç彿°ï¼å®ä»¬å¯ä»¥è®©ä½ æ éèªå·±ç¼åææç代ç ï¼å°±è½åå¾å¤æç¨çäºæ ãäºå®ä¸ï¼è®¸å¤ä½ è°ç¨ï¼ä¸ä¸è¯è¯ï¼ææâè¿è¡âæâæ§è¡âï¼æµè§å¨å ç½®å½æ°æ¶è°ç¨ç代ç å¹¶ä¸è½ç¨ JavaScript æ¥ç¼åââ大夿°è°ç¨æµè§å¨åå°ç彿°ç代ç ï¼æ¯ä½¿ç¨å C++ è¿æ ·æ´ä½çº§çç³»ç»è¯è¨ç¼åçï¼è䏿¯å JavaScript è¿æ ·ç web ç¼ç¨è¯è¨ã
请记ä½ï¼è¿äºå ç½®æµè§å¨å½æ°ä¸æ¯æ ¸å¿ JavaScript è¯è¨çä¸é¨åââå ¶ä¸é¨å彿°è¢«å®ä¹ä¸ºæµè§å¨ API çä¸é¨åï¼å®å»ºç«å¨é»è®¤è¯è¨ä¹ä¸ï¼ä»¥æä¾æ´å¤çåè½ï¼è¯·åé æ¬è¯¾ç¨çæ©æé¨å以è·å¾æ´å¤çæè¿°ï¼ãæä»¬å°å¨ä»¥åçæ¨¡å䏿´è¯¦ç»å°ä»ç»å¦ä½ä½¿ç¨æµè§å¨ APIã
彿°ä¸æ¹æ³å¯¹è±¡çæå彿°è¢«ç§°ä¸ºæ¹æ³ãä½ è¿ä¸å¿ äºè§£ JavaScript ä¸å·²æå»ºçå¯¹è±¡å¨æ´æ·±å±æ¬¡ä¸æ¯å¦ä½è¿ä½çââä½ å¯ä»¥çå°ä¸ä¸å°èï¼æä»¬ä¼æç»ä½ æå ³å¯¹è±¡è¿ä½æ¹å¼çä¸å以åå¦ä½å建å®ä»¬ãå¨æä»¬ç»§ç»ä¹åï¼æä»¬éè¦æ¾æ¸ ä¸äºæå ³æ¹æ³å彿°æ¦å¿µä¹é´å¯è½åå¨çæ··æ·ââå½ä½ å¨ç½ç»ä¸æµè§ç¸å ³ä¿¡æ¯çæ¶åï¼ä½ å¾å¯è½ä¼ç¢°ä¸è¿ä¸¤ä¸ªæ¯è¯ã
å°ç®åä¸ºæ¢æä»¬æä½¿ç¨çå 置代ç åå±äºè¿ä¸¤ç§å½¢å¼ï¼å½æ°åæ¹æ³ãä½ å¯ä»¥å¨è¿éæ¥çå ç½®å½æ°ãå 置对象以åå ¶ç¸å ³æ¹æ³ç宿´å表ã
ä½ å¨è¿å»ç课ç¨ä¸ä¹è§å°è¿å¾å¤èªå®ä¹å½æ°ââå¨ä½ ç代ç ä¸èéæµè§å¨ä¸å®ä¹ç彿°ãæ¯å½ä½ çå°ä¸ä¸ªåé¢å¸¦ææ¬å·çèªå®ä¹åç§°ï¼é£ä¹ä½ 使ç¨çæ¯èªå®ä¹å½æ°ã卿们çå¾ªç¯æç« ä¸ç random-canvas-circles.html 示ä¾ï¼åè§å®æ´çæºä»£ç ï¼ä¸ï¼æä»¬å
å«ä¸ä¸ªå¦ä¸æç¤ºçèªå®ä¹ draw()
彿°ï¼
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();
}
}
è¯¥å½æ°å¨ <canvas>
å
ç´ ä¸ç»å¶ 100 ä¸ªéæºå¤§å°çåãæ¯æ¬¡æä»¬æ³è¦è¿æ ·åï¼æä»¬åªéè¦è°ç¨è¿ä¸ªå½æ°ï¼
è䏿¯æ¯æ¬¡æä»¬æ³è¦è¿æ ·åï¼é½éè¦ååºææç代ç ã彿°å¯ä»¥å
å«ä»»ä½ä½ 忬¢ç代ç ââçè³å¯ä»¥å¨å½æ°å
è°ç¨å
¶ä»å½æ°ã以ä¸ç¤ºä¾ä»£ç è°ç¨äº random()
彿°ä¸æ¬¡ï¼è¯¥å½æ°ç±ä»¥ä¸ä»£ç å®ä¹ï¼
function random(number) {
return Math.floor(Math.random() * number);
}
æä»¬éè¦è¿ä¸ªå½æ°ï¼å 为æµè§å¨çå ç½® Math.random() 彿°åªçæä¸ä¸ª 0 å° 1 ä¹é´çéæºåè¿å¶æ°ãæä»¬æ³è¦ä¸ä¸ª 0 å°ä¸ä¸ªæå®æ°åä¹é´çéæºæ´æ°ã
è°ç¨å½æ°ä½ ç°å¨å¯è½å¾æ¸ æ¥è¿ä¸ç¹ï¼ä½ä»¥é²ä¸ä¸ï¼æä»¬è¿æ¯æéä¸ä¸ï¼è¦å¨å½æ°å®ä¹ä¹åå®é 使ç¨å®ï¼ä½ å¿ é¡»è¿è¡ï¼æè°ç¨ï¼å®ãè¿å¯ä»¥éè¿å¨ä»£ç çæä¸ªå°æ¹å å«å½æ°åï¼ç¶åå ä¸åæ¬å·æ¥å®ç°ã
function myFunction() {
alert("ä½ å¥½");
}
myFunction();
// è°ç¨ä¸æ¬¡è¯¥å½æ°
夿³¨ï¼ è¿ç§åå»ºå½æ°çå½¢å¼ï¼ä¹è¢«ç§°ä¸ºå½æ°å£°æã宿»æ¯è¢«æåçï¼è¿æ ·ä½ å°±è½å¨å½æ°å®ä¹ä¹åè°ç¨è¯¥å½æ°ã
彿°åæ°æäºå½æ°å¨è°ç¨å®ä»¬æ¶éè¦æå®åæ°ââè¿äºå¼éè¦æ¾å¨å½æ°æ¬å·å ï¼å½æ°æè½æ£ç¡®å°å®æå ¶å·¥ä½ã
夿³¨ï¼ åæ°ï¼parameterï¼ææ¶ç§°ä¸ºåæ°ï¼argumentï¼ã屿§ï¼propertyï¼æçè³ç¹æ§ï¼attributeï¼ã
ä¾å¦ï¼æµè§å¨çå ç½® Math.random() 彿°ä¸éè¦ä»»ä½åæ°ãå½è¢«è°ç¨æ¶ï¼å®æ»æ¯è¿å 0 å° 1 ä¹é´çéæºæ°ï¼
const myNumber = Math.random();
æµè§å¨çå ç½®å符串 replace() 彿°éè¦ä¸¤ä¸ªåæ°ï¼å¨ä¸»åç¬¦ä¸²ä¸æ¥æ¾çåå符串ï¼ä»¥åç¨äºæ¿æ¢è¯¥å符串çåå符串ï¼
const myText = "ææ¯ä¸ä¸ªå符串";
const newString = myText.replace("å符串", "é¦è ");
夿³¨ï¼ å½ä½ éè¦æå®å¤ä¸ªåæ°æ¶ï¼å®ä»¬ä»¥éå·åéã
å¯éåæ°è¿åºè¯¥æ³¨æï¼ææ¶åæ°ä¸æ¯å¿ éçââä½ ä¸å¿ æå®å®ä»¬ãå¦æä½ æ²¡ææå®æäºåæ°ï¼è¯¥å½æ°ä¸è¬ä¼éç¨æç§é»è®¤è¡ä¸ºãä¾å¦ï¼æ°ç»ç join() 彿°çåæ°æ¯å¯éçï¼
const myArray = ["æ", "ç±", "å·§å
å", "éè"];
const madeAString = myArray.join(" ");
console.log(madeAString);
// è¿åâæ ç± å·§å
å éèâ
const madeAnotherString = myArray.join();
console.log(madeAnotherString);
// è¿åâæ,ç±,å·§å
å,éèâ
å¦ææ²¡æå å«åæ°æ¥æå®è¿æ¥/åé符ï¼é»è®¤æ åµä¸ä¼ä½¿ç¨éå·ã
é»è®¤åæ°å¦æä½ æ£å¨ç¼åä¸ä¸ªå½æ°ï¼å¹¶å¸ææ¯æå¯éåæ°ï¼ä½ å¯ä»¥å¨åæ°åç§°åæ·»å =
ï¼ç¶ååæ·»å é»è®¤å¼æ¥æå®é»è®¤å¼ï¼
function hello(name = "å
鿝") {
console.log(`ä½ å¥½ï¼${name}ï¼`);
}
hello("é¿é"); // ä½ å¥½ï¼é¿éï¼
hello(); // ä½ å¥½ï¼å
鿝ï¼
å¿å彿°åç®å¤´å½æ°
å°ç®å为æ¢ï¼æä»¬å建äºå¦ä¸å½æ°ï¼
function myFunction() {
alert("ä½ å¥½");
}
使¯ä½ ä¹å¯ä»¥å建ä¸ä¸ªæ²¡æåç§°ç彿°ï¼
(function () {
alert("ä½ å¥½");
});
è¿å°±æ¯æè°çå¿å彿°ï¼å ä¸ºå®æ²¡æååãå½ä¸ä¸ªå½æ°å¸ææ¥æ¶å¦ä¸ä¸ªå½æ°ä½ä¸ºåæ°æ¶ï¼ä½ ç»å¸¸ä¼çå°å¿å彿°ãå¨è¿ç§æ åµä¸ï¼å½æ°åæ°é常ä½ä¸ºå¿å彿°ä¼ éã
夿³¨ï¼ è¿ç§åå»ºå½æ°çå½¢å¼ä¹ç§°ä¸ºå½æ°è¡¨è¾¾å¼ãä¸å½æ°å£°æä¸åï¼å½æ°è¡¨è¾¾å¼ä¸ä¼è¢«æåã
å¿å彿°ç¤ºä¾ä¾å¦ï¼ä½ æ³å¨ç¨æ·è¾å
¥ææ¬æ¡æ¶è¿è¡ä¸äºä»£ç ã为æ¤ï¼ä½ å¯ä»¥è°ç¨ææ¬æ¡ç addEventListener()
彿°ãè¯¥å½æ°å¸æä½ ï¼è³å°ï¼ä¼ ç»å®ä¸¤ä¸ªåæ°ï¼
keydown
å½ç¨æ·æä¸æä¸ªæé®æ¶ï¼æµè§å¨å°è°ç¨ä½ æä¾ç彿°ï¼å¹¶ä¼ éç»å®ä¸ä¸ªå å«è¯¥äºä»¶ä¿¡æ¯çåæ°ï¼å ¶ä¸å æ¬ç¨æ·æä¸çç¹å®æé®ï¼
function logKey(event) {
console.log(`You pressed "${event.key}".`);
}
textBox.addEventListener("keydown", logKey);
ä½ å¯ä»¥å°ä¸ä¸ªå¿å彿°ä¼ å
¥ addEventListener()
ï¼è䏿¯å®ä¹ä¸ä¸ªåç¬ç logKey()
彿°ï¼
textBox.addEventListener("keydown", function (event) {
console.log(`You pressed "${event.key}".`);
});
ç®å¤´å½æ°
å¦æä½ ä¼ éè¿æ ·ä¸ä¸ªå¿å彿°ï¼ä½ å¯ä»¥ä½¿ç¨å¦ä¸ç§å½¢å¼ï¼å³ç®å¤´å½æ°ãä½ å¯ä»¥ç¨ (event) =>
æ¥ä»£æ¿ function(event)
ï¼
textBox.addEventListener("keydown", (event) => {
console.log(`You pressed "${event.key}".`);
});
妿彿°åªæ¥åä¸ä¸ªåæ°ï¼å¯ä»¥çç¥åæ°å¨å´çæ¬å·ï¼
textBox.addEventListener("keydown", event => {
console.log(`You pressed "${event.key}".`);
});
æåï¼å¦æå½æ°åªå
å«ä¸è¡ return
è¯å¥ï¼ä¹å¯ä»¥çç¥åæ¬å·å return
å
³é®åï¼éå¼å°è¿å表达å¼ãå¨ä¸é¢ç示ä¾ä¸ï¼æä»¬ä½¿ç¨ Array
ç map()
æ¹æ³å°åå§æ°ç»ä¸çæ¯ä¸ªå¼å åï¼
const originals = [1, 2, 3];
const doubled = originals.map(item => item * 2);
console.log(doubled); // [2, 4, 6]
map()
æ¹æ³ä¾æ¬¡è·åæ°ç»ä¸çæ¯ä¸é¡¹ï¼å¹¶å°å
¶ä¼ éç»ç»å®å½æ°ãç¶åï¼å®å°è¯¥å½æ°è¿åç弿·»å å°ä¸ä¸ªæ°æ°ç»ä¸ã
å æ¤ï¼å¨ä¸é¢çä¾åä¸ï¼ç®å¤´å½æ° item => item * 2
ç¸å½äºï¼
function doubleItem(item) {
return item * 2;
}
ä½ å¯ä»¥ä½¿ç¨åæ ·ç®æ´çè¯æ³éå addEventListener
示ä¾ã
textBox.addEventListener("keydown", (event) =>
console.log(`You pressed "${event.key}".`),
);
å¨è¿ç§æ
åµä¸ï¼åè°å½æ°éå¼è¿å console.log()
çå¼ï¼å³ undefined
ã
æä»¬å»ºè®®ä½ 使ç¨ç®å¤´å½æ°ï¼å 为å®ä»¬å¯ä»¥ä½¿ä½ çä»£ç æ´ç®çãæ´æè¯»ãè¦äºè§£æ´å¤ä¿¡æ¯ï¼è¯·åé JavaScript æåä¸çæå ³é¨åï¼ä»¥åæä»¬æå ³ç®å¤´å½æ°çåèææ¡£ã
夿³¨ï¼ 注æï¼ç®å¤´å½æ°åæ®é彿°ä¹é´åå¨ä¸äºç»å¾®å·®å«ãå®ä»¬è¶ åºäºæ¬å ¥é¨æåçèå´ï¼å¹¶ä¸ä¸å¤ªå¯è½å¨æä»¬å¨è¿éè®¨è®ºçæ¡ä¾ä¸äº§çå½±åãè¦äºè§£æ´å¤ä¿¡æ¯ï¼è¯·åé ç®å¤´å½æ°åèææ¡£ã
ç®å¤´å½æ°å®æ¶ç¤ºä¾ä¸é¢æ¯æä»¬ä¸é¢è®¨è®ºçâkeydownâ示ä¾ç宿´å·¥ä½ç¤ºä¾ï¼
HTML æä»¶ï¼
<input id="textBox" type="text" />
<div id="output"></div>
JavaScript æä»¶ï¼
const textBox = document.querySelector("#textBox");
const output = document.querySelector("#output");
textBox.addEventListener("keydown", (event) => {
output.textContent = `You pressed "${event.key}".`;
});
div {
margin: 0.5rem 0;
}
ç»æââè¯çè¾å ¥ææ¬æ¡ï¼ççè¾åºç»æï¼
彿°ä½ç¨ååå²çªæä»¬æ¥è°ä¸è°ä½ç¨åââå¤ç彿°æ¶ä¸ä¸ªé常éè¦çæ¦å¿µãå½ä½ å建ä¸ä¸ªå½æ°æ¶ï¼å½æ°å å®ä¹çåéåå ¶ä»ä¸è¥¿é½å¨å®ä»¬èªå·±çåç¬çä½ç¨åå ï¼æå³çå®ä»¬è¢«éå¨èªå·±ç¬ç«çéé´ä¸ï¼ä¸è½è¢«å½æ°å¤ç代ç 访é®ã
ææå½æ°çæå¤å±è¢«ç§°ä¸ºå ¨å±ä½ç¨åãå¨å ¨å±ä½ç¨åå å®ä¹çå¼å¯ä»¥å¨ä»»æå°æ¹è®¿é®ã
JavaScript ä¹æä»¥è®¾è®¡æå¦æ¤ï¼æå¾å¤åå ï¼ä½ä¸»è¦æ¯åºäºå®å ¨æ§åç»ç»æ§çèèãææ¶ä½ ä¸å¸æåéå¯ä»¥å¨ä»£ç ä¸çä»»ä½å°æ¹è¢«è®¿é®å°ââä½ ä»å ¶ä»å°æ¹è°ç¨çå¤é¨èæ¬å¯è½ä¼å¼å§å¹²æ°ä½ ç代ç 并导è´é®é¢ï¼å 为å®ä»¬å¯è½ä¸ä»£ç çå ¶å®é¨å使ç¨äºç¸åçåéåç§°ï¼é æå²çªãè¿å¯è½æ¯åºäºæ¶æç®çï¼æè åªæ¯æå¤ã
ä¾å¦ï¼åè®¾ä½ æä¸ä¸ª HTML æä»¶ï¼å®è°ç¨ä¸¤ä¸ªå¤é¨ JavaScript æä»¶ï¼å¹¶ä¸å®ä»¬é½æä¸ä¸ªä½¿ç¨ç¸ååç§°å®ä¹çåéå彿°ï¼
<!-- Excerpt from my HTML -->
<script src="first.js"></script>
<script src="second.js"></script>
<script>
greeting();
</script>
// first.js
const name = "Chris";
function greeting() {
alert(`Hello ${name}: welcome to our company.`);
}
// second.js
const name = "Zaptec";
function greeting() {
alert(`Our company is called ${name}.`);
}
ä½ æ³è¦è°ç¨çä¸¤ä¸ªå½æ°é½è¢«å½å为 greeting()
ï¼ä½ä½ åªè½è®¿é®å° first.js
æä»¶ä¸ç greeting()
彿°ï¼ç¬¬äºä¸ªå½æ°ä¼è¢«å¿½ç¥ï¼ãæ¤å¤ï¼ï¼å¨ second.js
æä»¶ä¸ï¼è¯å¾ç» name
åéèµä¸ä¸ªæ°å¼æ¶ä¼å¯¼è´é误ï¼å 为å®å·²ç»ç¨ const
声æè¿äºï¼æä»¥æ æ³éæ°èµå¼ã
夿³¨ï¼ ä½ å¯ä»¥å¨ GitHub ä¸åèè¿è¡çå®ä¾ï¼æ¥ç宿´æºä»£ç ï¼ã
å°é¨å代ç éå®å¨å½æ°ä¸é¿å äºè¿æ ·çé®é¢ï¼å¹¶è¢«è®¤ä¸ºæ¯æä½³å®è·µã
è¿æç¹åä¸ä¸ªå¨ç©åãç®åãæé©¬ãèèåä¼é¹ é½ä¿çå¨èªå·±çååä¸ï¼åªè½æ¿å°å°å®ä»¬ååä¸çä¸è¥¿ââä¸å ¶å½æ°ä½ç¨åç¸åã妿ä»ä»¬è½è¿å ¥å ¶ä»ååï¼å°±ä¼åºç°é®é¢ãä¸åçå¨ç©ä¼å¨ä¸çæçæ æ¯å°å æå°ççä¸èæââä¸åªç®åæèèä¼å¨ä¼é¹ çæ°´å¤çï¼å°å·çé¢å䏿å°å¯æãæç³ç³çæ¯ï¼ç®ååèèå¯è½ä¼å°è¯åä¼é¹ ï¼
å¨ç©å管çåå°±åå ¨å±ä½ç¨åââ仿她æé¥åè®¿é®æ¯ä¸ªååï¼éæ°æåé£ç©ï¼ç §é¡¾çç çå¨ç©çã
主å¨å¦ä¹ ï¼å scope ç©èæä»¬æ¥çä¸ä¸ªçæ£çä¾åæ¥å±ç¤ºèå´
é¦å
ï¼å建æä»¬ç function-scope.html 示ä¾çæ¬å°å¯æ¬ãå®å
å«ä¸¤ä¸ªå½æ° a()
å b()
ï¼åä¸ä¸ªåéââx
ãy
åz
ââå
¶ä¸ä¸¤ä¸ªå¨å½æ°ä¸è¢«å®ä¹ï¼å¦ä¸ä¸ªè¢«å®ä¹å¨å
¨å±ä½ç¨åå
ãå®è¿å
å«ä¸ä¸ªå为 output()
ç彿°ï¼å®æ¥æ¶ä¸ä¸ªåæ°ï¼å¹¶å°å
¶è¾åºå°é¡µé¢çä¸ä¸ªæ®µè½ä¸ã
卿µè§å¨åææ¬ç¼è¾å¨ä¸æå¼ç¤ºä¾ã
卿µè§å¨å¼åå·¥å ·ä¸æå¼ JavaScript æ§å¶å°ãå¨ JavaScript æ§å¶å°ä¸ï¼è¾å ¥ä»¥ä¸å½ä»¤ï¼
ä½ åºè¯¥çå°åé x
è¾åºå°å±å¹çå¼ã
ç°å¨å°è¯å¨ä½ çæ§å¶å°ä¸è¾å ¥ä»¥ä¸å 容
è¿ä¸¤ä¸ªé½åºè¯¥è¿åé误âReferenceErrorï¼y is not definedâãè¿æ¯ä¸ºä»ä¹ï¼è¿æ¯å ä¸ºå½æ°ä½ç¨åâây
å z
被éå¶å¨å½æ° a()
å b()
彿°ä¸ï¼æä»¥ output()
ä»å
¨å±ä½ç¨åè°ç¨æ¶æ æ³è®¿é®å®ä»¬ã
使¯ï¼ä»å¦ä¸ä¸ªå½æ°éé¢è°ç¨ä»ä¹å¢ï¼å°è¯ç¼è¾ a()
ãb()
æä»¥å®ä»¬çèµ·æ¥åè¿æ ·ï¼
function a() {
const y = 2;
output(y);
}
function b() {
const z = 3;
output(z);
}
ä¿å代ç å¹¶éæ°å è½½å°æµè§å¨ä¸ï¼ç¶åå°è¯ä» JavaScript æ§å¶å°è°ç¨ a()
å b()
彿°ï¼
ä½ åºè¯¥çå°é¡µé¢ä¸è¾åºç y
å z
çå¼ãè¿æ ·å°±æ²¡é®é¢ï¼å 为 output()
彿°å¨å
¶ä»å½æ°çå
é¨è¢«è°ç¨ââå¨è¿ç§æ
åµä¸ï¼è¾åºåéçå®ä¹å彿°çè°ç¨é½å¨åä¸ä¸ªä½ç¨åä¸ãoutput()
å®å¯ä»¥ä»ä»»ä½å°æ¹è¢«è°ç¨ï¼å 为å®å¨å
¨å±ä½ç¨åä¸è¢«å®ä¹ã
ç°å¨å°è¯æ´æ°ä½ ç代ç ï¼å¦ä¸æç¤ºï¼
function a() {
const y = 2;
output(x);
}
function b() {
const z = 3;
output(x);
}
忬¡ä¿åå¹¶éæ°å è½½ï¼å¹¶å¨ JavaScript æ§å¶å°ä¸å次å°è¯ï¼
彿° a()
å b()
é½åºè¯¥è¾åº x
çå¼ãè¿äºæ²¡æé®é¢ï¼å 为å³ä½¿ output()
çè°ç¨ä¸ x
çå®ä¹ä¸å¨åä¸ä¸ªä½ç¨åå
ï¼ä½ x
æ¯ä¸ä¸ªå
¨å±åéï¼æä»¥å¨ææä»£ç ä¸é½å¯ç¨ã
æåï¼å°è¯æ´æ°ä½ ç代ç ï¼å¦ä¸æç¤ºï¼
function a() {
const y = 2;
output(z);
}
function b() {
const z = 3;
output(y);
}
忬¡ä¿åå¹¶éæ°å è½½ï¼å¹¶å¨ JavaScript æ§å¶å°ä¸å次å°è¯ï¼
è¿æ¬¡ a()
å b()
è°ç¨é½ä¼è¿åé£ä¸ªä»¤äººè®¨åçâReferenceError: variable name is not definedâé误ââè¿æ¯å 为 output()
彿°çè°ç¨åè¾åºåéçå®ä¹ä¸å¨åä¸ä¸ªå½æ°ä½ç¨åå
ââåé对äºè¿äºå½æ°è°ç¨èè¨æ¯ä¸å¯è§çã
夿³¨ï¼ ç¸åçä½ç¨åè§åä¸éç¨äºå¾ªç¯ï¼ä¾å¦ for() { }
ï¼åæ¡ä»¶åï¼ä¾å¦ if() { }
ï¼ââå®ä»¬çèµ·æ¥é常ç¸ä¼¼ï¼ä½å®ä»¬ä¸ä¸æ ·ï¼åä¸ä¸è¦æ··æ·å®ä»¬ã
夿³¨ï¼ âReferenceError: "x" is not definedâé误å°ä¼æ¯ä½ éå°çæå¸¸è§çé误ãå¦æä½ æ¶å°æ¤é误ï¼å¹¶ä¸ç¡®å®ä½ å·²ç»å®ä¹äºè¯¥åéï¼è¯·æ£æ¥å®çä½ç¨åã
æè½æµè¯ï¼ä½ å·²ç»æ¥å°äºæ¬æç« çç»å°¾ï¼ä½æ¯ä½ è¿è½è®°å¾æéè¦çç¥è¯åï¼ä½ å¯ä»¥å¨ç¦»å¼è¿éæ¾å°ä¸äºæ´æ·±åº¦çæµè¯æ¥è¯å®ä½ å·²ç»è®°ä½äºè¿äºç¥è¯ââæ¥çæè½æµè¯ï¼å½æ°ãåä¸¤ç« ææ¬å å«äºè¿ä¸ªæµè¯éè¦çæè½ï¼æä»¥ä½ å¯è½å éè¦é 读åå°è¯è¯¥æµè¯ã
æ»ç»æ¬ææ¢è®¨äºå½æ°èåçåºæ¬æ¦å¿µï¼ä¸ºä¹åçå¦ä¹ å¥ å®äºåºç¡ãä¸ä¸æ¥ï¼æä»¬å°è¿è¡å®è·µï¼å¹¶å¸¦ä½ 䏿¥æ¥å»ºç«èµ·ä½ èªå·±ç彿°ã
åè§RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4