以䏿忶µçäºå¦ä½ä¸º MDN Web Docs ç¼å JavaScript 示ä¾ä»£ç ãæ¬æååºäºç¼åç®æ´ç¤ºä¾çè§åï¼ä»¥æè¿äºç¤ºä¾å°è¢«å°½å¯è½å¤ç人çè§£ã
JavaScript 代ç 示ä¾å¸¸è§æåæ¬èè§£éäºç¼å JavaScript 代ç ç¤ºä¾æ¶è¦ç¢è®°çä¸è¬ååãåé¢çé¨åå°æ¶µçæ´å ·ä½çç»èã
éæ©æ ¼å¼å ³äºæ£ç¡®ç¼©è¿ãç©ºæ ¼åè¡çé¿åº¦æ¹é¢çè§ç¹ä¸ç´åå¨äºè®®ã对è¿äºä¸»é¢ç讨论ä¼åæ£åä½åç»´æ¤å å®¹çæ³¨æåã
å¨ MDN Web Docsï¼æä»¬ä½¿ç¨ Prettier ä½ä¸ºä»£ç æ ¼å¼åå·¥å ·ä»¥ä¿æä»£ç æ ·å¼çä¸è´æ§ï¼åæ¶é¿å å离主é¢ç讨论ï¼ãä½ å¯ä»¥æ¥é æä»¬çé ç½®æä»¶äºè§£å½åè§åï¼å¹¶é 读 Prettier ææ¡£ã
Prettier æ ¼å¼åææä»£ç å¹¶ä¿æé£æ ¼ä¸è´ãå°½ç®¡å¦æ¤ï¼ä½ è¿éè¦éµå®ä¸äºé¢å¤çè§åã
使ç¨ç°ä»£ JavaScript ç¹æ§å¦ææ°çç¹æ§è¢«æ¯ä¸ªä¸»æµçæµè§å¨ââChromeãEdgeãFirefox å Safari ææ¯æï¼ä½ å°±å¯ä»¥ä½¿ç¨å®ä»¬ã
æ°ç» å建æ°ç»è¯·ä½¿ç¨åé¢éèéæé 彿°æ¥å建æ°ç»ã
åè¿æ ·æ¥å建æ°ç»ï¼
const visitedCities = [];
èä¸è¦è¿æ ·å建æ°ç»ï¼
const visitedCities = new Array(length);
æ·»å å
ç´
åæ°ç»æ·»å å
ç´ æ¶ï¼è¯·ä½¿ç¨ push()
èéç´æ¥èµå¼ãèèæå¦ä¸æ°ç»ï¼
åè¿æ ·åæ°ç»æ·»å å ç´ ï¼
èä¸è¦åè¿æ ·åæ°ç»æ·»å å ç´ ï¼
pets[pets.length] = "cat";
弿¥æ¹æ³
ç¼å弿¥ä»£ç å¯ä»¥æé«æ§è½ï¼åºå°½å¯è½ä½¿ç¨ãç¹å«æ¯ï¼ä½ å¯ä»¥ä½¿ç¨ï¼
å½ä¸¤ç§è¯æ³é½å¯è¡æ¶ï¼æä»¬å¾åäºä½¿ç¨æ´ç®åç async
/await
è¯æ³ãä¸å¹¸çæ¯ï¼ä½ ä¸è½å¨é¡¶å±ä½¿ç¨ await
ï¼é¤éä½ å¨ ECMAScript 模åä¸ãä½ Node.js ä½¿ç¨ CommonJS 模åè䏿¯ ES 模åãå æ¤ï¼å¦æä½ æç®å¨ææå°æ¹ä½¿ç¨è¯¥ç¤ºä¾ï¼è¯·é¿å
é¡¶å±ç await
ã
注é对äºç¼åè¯å¥½ç代ç 示ä¾é常éè¦ãå®ä»¬æ¸ æ¥å°éæäºä»£ç çæå¾ï¼å¹¶å¸®å©å¼åè çè§£å®ãå æ¤è¦ç¹å«æ³¨æå®ä»¬ã
妿代ç çç®çæé»è¾ä¸ææ¾ï¼è¯·æ·»å 表æä½ çæå¾ç注éï¼å°±åä¸é¢è¿æ ·ï¼
let total = 0;
// è®¡ç®æ°ç» arr çåå个å
ç´ çå
for (let i = 0; i < 4; i++) {
total += arr[i];
}
å¦ä¸æ¹é¢ï¼è¯·ä¸è¦ç¨æåéè¿°ä»£ç æ¥ä½ä¸ºæ³¨éï¼
let total = 0;
// ä» 1 å° 4 ç for 循ç¯
for (let i = 0; i < 4; i++) {
// å°å¼ç´¯å å°æ»åï¼totalï¼
total += arr[i];
}
å½å½æ°çåç§°æ¸ æ¥å°æè¿°äºå®ä»¬çä½ç¨æ¶ï¼ä¸éè¦å注éãå¦ï¼
ä¸è¦ååä¸é¢è¿æ ·ç注éï¼
closeConnection(); // å
³éè¿æ¥
åè¡æ³¨éç¨ //
æ è®°ï¼ä¸å
å«å¨ /* ⦠*/
ä¹é´çåæ³¨éç¸åã
é常æ
åµä¸ï¼ä½¿ç¨åè¡æ³¨éæ¥æ³¨é代ç ãç¼åè
å¿
é¡»ç¨ //
æ è®°æ¯ä¸è¡ç注éï¼è¿æ ·å°±æ´å®¹æç´è§å°æ³¨æå°æ³¨éæç代ç ãæ¤å¤ï¼è¿ç§çº¦å®å
许å¨è°è¯æ¶ä½¿ç¨ /* ⦠*/
注éæé¨å代ç ã
卿æ åç©ºæ ¼ä¹é´çä¸ä¸ªç©ºæ ¼ãï¼è±æçï¼æ³¨é以大å忝å¼å¤´ï¼å°±åå¥å䏿 ·ï¼ä½ä¸è¦å¨ç»å°¾å å¥å·ã
// è¿æ¯ä¸ä¸ªè¯å¥½çåè¡æ³¨é
妿ä¸ä¸ªæ³¨é没æå¨æ°ç¼©è¿çº§å«ä¹åå¼å§ï¼è¯·å¨ç©ºè¡åæ·»å æ³¨éãè¿å°å建ä¸ä¸ªä»£ç åï¼ä½¿å¾æ³¨éä¸ä»£ç çå ³èæ´å æ¸ æ°ãæ¤å¤ï¼å°ä½ çæ³¨éæ¾å¨å®ä»¬ææç代ç ä¹åçåç¬ä¸è¡ä¸ãå¦ä¸ä¾æç¤ºï¼
function checkout(goodsPrice, shipmentPrice, taxes) {
// è®¡ç®æ»ä»·
const total = goodsPrice + shipmentPrice + taxes;
// å建ä¸ä¸ªææ¡£å¹¶åå
¶æ·»å ä¸ä¸ªæ°ç段è½
const para = document.createElement("p");
para.textContent = `æ»ä»·æ¯ ${total}`;
document.body.appendChild(para);
}
对äºé¢æå¨ç产ç¯å¢ä¸è¿è¡ç代ç ï¼ä½ å¾å°ä¼éè¦å¯¹æå°è¯å¥è¿è¡æ³¨éãå¨ä»£ç 示ä¾ä¸ï¼æä»¬ç»å¸¸ä½¿ç¨ console.log()
ãconsole.error()
æç±»ä¼¼ç彿°æ¥è¾åºéè¦çå¼ã为äºå¸®å©è¯»è
å¨ä¸è¿è¡ä»£ç çæ
åµä¸çè§£ä¼åçä»ä¹ï¼ä½ å¯ä»¥å¨æå°å½æ°ä¹å注éè¾åºçå
å®¹ãæ¯å¦ï¼
function exampleFunc(fruitBasket) {
console.log(fruitBasket); // ['é¦è', 'èæ', 'æ©å']
}
请ä¸è¦è¿æ ·åï¼
function exampleFunc(fruitBasket) {
// è¾åºï¼['é¦è', 'èæ', 'æ©å']
console.log(fruitBasket);
}
å¦æè¿æ ·ä¼è®©è¡åå¾å¤ªé¿ï¼è¯·å°æ³¨éæ¾å¨å½æ°ä¹åï¼å¦ä¸æç¤ºï¼
function exampleFunc(fruitBasket) {
console.log(fruitBasket);
// ['é¦è', 'èæ', 'æ©å', 'è¹æ', '梨', '榴è²', 'æ æª¬']
}
ç®ççæ³¨éé常æ´å¥½ï¼æä»¥å°è¯å°ä»ä»¬ä¿æå¨ 60â80 个å符çåè¡ä¸ã妿è¿ä¸å¯è½ï¼è¯·å¨æ¯è¡çå¼å¤´ä½¿ç¨ //
ï¼
// è¿æ¯ä¸ä¸ªå¤è¡æ³¨éç示ä¾ã
// å设ä¸é¢ç彿°æä¸äºææ³æåºçä¸å¯»å¸¸çå±éæ§ã
// å±é 1
// å±é 2
请ä¸è¦ä½¿ç¨ /* ⦠*/
ï¼
/* è¿æ¯ä¸ä¸ªå¤è¡æ³¨éç示ä¾ã
å设ä¸é¢ç彿°æä¸äºææ³æåºçä¸å¯»å¸¸çå±éæ§ã
å±é 1
å±é 2 */
ä½¿ç¨æ³¨éæ¥æ è®°çç¥å·
为äºä¿æç¤ºä¾ç®çï¼æä»¬éè¦ä½¿ç¨çç¥å·ï¼â¦ï¼æ¥è·³è¿åä½ä»£ç ãå°½ç®¡å¦æ¤ï¼ç¼åè åºè¯¥ä»ç»èèï¼å 为å¼åè ç»å¸¸å¤å¶ç²è´´ç¤ºä¾å°ä»ä»¬ç代ç ä¸ï¼æä»¥æä»¬ææç示ä¾ä»£ç é½åºè¯¥æ¯ææç JavaScriptã
å¨ JavaScript ä¸ï¼ä½ åºè¯¥å°çç¥å·ï¼â¦
ï¼æ¾å¨æ³¨éä¹ä¸ãå¯è½çè¯ï¼è¯·æåºéç¨æ¤ä»£ç çæ®µç人é¢è®¡ä¼æ·»å ä»ä¹æä½ã
对çç¥å·ï¼â¦ï¼ä½¿ç¨æ³¨éæ´å æç¡®ï¼å¯ä»¥é²æ¢å¼å人åå¤å¶åç²è´´ç¤ºä¾ä»£ç æ¶åºç°éè¯¯ãæ¯å¦ï¼
function exampleFunc() {
// 卿¤å¤æ·»å ä½ ç代ç
// â¦
}
请ä¸è¦åè¿æ ·è¿æ ·ä½¿ç¨çç¥å·ï¼â¦ï¼ï¼
function exampleFunc() {
â¦
}
注éæåæ°
å¨ç¼åä»£ç æ¶ï¼ä½ é常ä¼çç¥ä½ ä¸éè¦çåæ°ãä½å¨æäºä»£ç 示ä¾ä¸ï¼ä½ æ³è¦æ¾å¼ç说æä½ 没æä½¿ç¨æäºå¯è½çåæ°ã
为æ¤ï¼è¯·å¨åæ°å表ä¸ä½¿ç¨ /* ⦠*/
ãè¿æ¯åªä½¿ç¨åè¡æ³¨éï¼//
ï¼çè§åçä¸ä¸ªä¾å¤ã
array.forEach((value /* , index, array */) => {
// â¦
});
彿° 彿°åç§°
对äºå½æ°åç§°ï¼è¯·ä½¿ç¨ä»¥å°å忝å¼å¤´çå°é©¼å³°å¼å½åãé æ 使ç¨ç®æ´ãå¯è¯»çåè¯ä¹åçåç§°ã
以䏿¯å½æ°åç§°çæ£ç¡®ç¤ºä¾ï¼
function sayHello() {
console.log("ä½ å¥½ï¼");
}
请ä¸è¦ä½¿ç¨åè¿æ ·ç彿°åç§°ï¼
function SayHello() {
console.log("ä½ å¥½ï¼");
}
function doIt() {
console.log("ä½ å¥½ï¼");
}
彿°å£°æ
å¨å¯è½çæ åµä¸ï¼è¯·ä½¿ç¨å½æ°å£°æè䏿¯å½æ°è¡¨è¾¾å¼æ¥å®ä¹å½æ°ã
以䏿¯å£°æå½æ°çæ¨èæ¹å¼ï¼
function sum(a, b) {
return a + b;
}
以ä¸ä¸æ¯å®ä¹å½æ°çå¥½æ¹æ³ï¼
let sum = function (a, b) {
return a + b;
};
å½ä½¿ç¨å¿å彿°ä½ä¸ºåè°ï¼ä¼ éç»å¦ä¸ä¸ªæ¹æ³è°ç¨ç彿°ï¼ï¼å¦æä½ ä¸éè¦è®¿é® this
ï¼ä½¿ç¨ç®å¤´å½æ°å¯ä»¥è®©ä»£ç æ´å ç®æ´æäºã
以䏿¯æ¨èçæ¹å¼ï¼
const array1 = [1, 2, 3, 4];
const sum = array1.reduce((a, b) => a + b);
è䏿¯è¿æ ·ï¼
const array1 = [1, 2, 3, 4];
const sum = array1.reduce(function (a, b) {
return a + b;
});
èèé¿å
使ç¨ç®å¤´å½æ°å°å½æ°åé
ç»æ è¯ç¬¦ãå°¤å
¶æ¯ï¼ä¸è¦å¯¹æ¹æ³ä½¿ç¨ç®å¤´å½æ°ã使ç¨å¸¦æå
³é®å function
ç彿°å£°æï¼
ä¸è¦è¿æ ·ï¼
const x = () => {
// â¦
};
使ç¨ç®å¤´å½æ°æ¶ï¼å°½å¯è½ä½¿ç¨éå¼è¿åï¼ä¹ç§°ä¸ºè¡¨è¾¾å¼ä¸»ä½ï¼ï¼
è䏿¯ï¼
arr.map((e) => {
return e.id;
});
å½éè¦å¾ªç¯æ¶ï¼ä» for(;;)
ãfor...of
ãwhile
çä¸éæ©åéçã
å¨éåéåä¸çææå
ç´ æ¶ï¼é¿å
使ç¨ä¼ ç»ç for (;;)
循ç¯ï¼ä¼å
ä½¿ç¨ for...of
æ forEach()
ã请注æï¼å¦æä½ 使ç¨çæ¯ä¸ä¸ªä¸æ¯ Array
çéåï¼ä½ å¿
é¡»æ£æ¥ for...of
æ¯å¦ççè¢«æ¯æï¼å®éè¦å鿝å¯è¿ä»£çï¼ï¼æè
forEach()
æ¹æ³æ¯å¦åå¨ã
ä½¿ç¨ for...of
ï¼
const dogs = ["æºè´¢", "æ¥ç¦"];
for (const dog of dogs) {
console.log(dog);
}
æ forEach()
ï¼
const dogs = ["æºè´¢", "æ¥ç¦"];
dogs.forEach((dog) => {
console.log(dog);
});
请ä¸è¦ä½¿ç¨ for (;;)
ââä½ ä¸ä»
éè¦æ·»å é¢å¤çç´¢å¼ i
ï¼ä½ è¿å¿
é¡»è·è¸ªæ°ç»çé¿åº¦ãè¿å¯¹äºåå¦è
æ¥è¯´å¾å®¹æåºéã
const dogs = ["æºè´¢", "æ¥ç¦"];
for (let i = 0; i < dogs.length; i++) {
console.log(dogs[i]);
}
ç¡®ä¿ä½ æ£ç¡®å°å®ä¹äºåå§åå¨ï¼å¯¹ for...of
ä½¿ç¨ const
å
³é®åï¼æå¯¹å
¶ä»å¾ªç¯ä½¿ç¨ let
ãæ³¨æä¸è¦éæ¼ã以䏿¯æ£ç¡®ç示ä¾ï¼
const cats = ["汤å§", "èæ©"];
for (const cat of cats) {
console.log(cat);
}
for (let i = 0; i < 4; i++) {
result += arr[i];
}
ä¸é¢çç¤ºä¾æ²¡æéµå¾ªæ¨èçåå§åååï¼å®éå¼å建äºå ¨å±åéï¼å¹¶ä¸å¨ä¸¥æ ¼æ¨¡å¼ä¸ä¼å¤±è´¥ï¼ï¼
const cats = ["汤å§", "èæ©"];
for (i of cats) {
console.log(i);
}
使¯éè¦åæ¶èå´å¼åç´¢å¼æ¶ï¼ä½ å¯ä»¥ä½¿ç¨ .forEach()
è䏿¯ for (;;)
ãä¾å¦ï¼
const gerbils = ["èå
", "è´å¡"];
gerbils.forEach((gerbil, i) => {
console.log(`æ²é¼ ${i} å·ï¼${gerbil}`);
});
请ä¸è¦è¿æ ·åï¼
const gerbils = ["èå
", "è´å¡"];
for (let i = 0; i < gerbils.length; i++) {
console.log(`æ²é¼ ${i} å·ï¼${gerbil}`);
}
è¦åï¼ åå¿ä½¿ç¨ for...in
éåæ°ç»åå符串ã
夿³¨ï¼ èèå®å
¨ä¸ä½¿ç¨ for
循ç¯ãå¦æä½ æ£å¨ä½¿ç¨ Array
ï¼æè
å¨æäºæä½ä¸ä½¿ç¨ String
ï¼ï¼è¯·èèä½¿ç¨æ´å
·è¯ä¹çè¿ä»£æ¹æ³ï¼æ¯å¦ map()
ãevery()
ãfindIndex()
ãfind()
ãincludes()
çã
å¯¹äº if...else
æ§å¶è¯å¥ï¼æä¸ä¸ªå¼å¾æ³¨æçæ
åµã妿 if
è¯å¥ä»¥ return
ç»å°¾ï¼åä¸è¦æ·»å else
è¯å¥ã
å¨ if
è¯å¥åç»§ç»ï¼ä¾å¦ï¼
if (test) {
// 妿 test 为çåæ§è¡æäºæä½
// â¦
return;
}
// 妿 test 为ååæ§è¡æäºæä½
// â¦
请ä¸è¦è¿æ ·åï¼
if (test) {
// 妿 test 为çåæ§è¡æäºæä½
// â¦
return;
} else {
// 妿 test 为ååæ§è¡æäºæä½
// â¦
}
å°å¤§æ¬å·ä¸æ§å¶æµè¯å¥å循ç¯ä¸èµ·ä½¿ç¨
è½ç¶å if
ãfor
å while
çæ§å¶æµè¯å¥ä¸éè¦å¨å
容ä¸åªæä¸ä¸ªè¯å¥æ¶ä½¿ç¨å¤§æ¬å·ï¼ä½ä½ æ»æ¯åºè¯¥ä½¿ç¨å¤§æ¬å·ãæ¯å¦ï¼
for (const car of storedCars) {
car.paint("红è²");
}
ä¸è¦è¿æ ·åï¼
for (const car of storedCars) car.paint("红è²");
è¿å¯ä»¥é²æ¢å¿è®°å¨æ·»å æ´å¤è¯å¥æ¶æ·»å 大æ¬å·ã
Switch è¯å¥switch è¯å¥å¯è½æç¹æ£æã
ä¸è¦å¨ return
è¯å¥åæ·»å break
è¯å¥ãç¸åï¼è¯·åä¸é¢è¿æ ·ç¼å return
è¯å¥ï¼
switch (species) {
case "chicken":
return farm.shed;
case "horse":
return corral.entry;
default:
return "";
}
å¦æä½ æ·»å äº break
è¯å¥ï¼å®ä¼æ¯ä¸å¯è¾¾çãä¸è¦è¿æ ·åï¼
switch (species) {
case "chicken":
return farm.shed;
break;
case "horse":
return corral.entry;
break;
default:
return "";
}
ä½¿ç¨ default
ä½ä¸ºæåä¸ä¸ª caseï¼ä¸è¦å¨ default
å颿·»å break
è¯å¥ãå¦æä½ éè¦åä¸åçäºæ
ï¼è¯·æ·»å æ³¨éæ¥è§£é为ä»ä¹ã
请记ä½ï¼å½ä½ 为ä¸ä¸ª case 声æä¸ä¸ªå±é¨åéæ¶ï¼ä½ éè¦ä½¿ç¨å¤§æ¬å·æ¥å®ä¹ä½ç¨åï¼
switch (fruits) {
case "Orange": {
const slice = fruit.slice();
eat(slice);
break;
}
case "Apple": {
const core = fruit.extractCore();
recycle(core);
break;
}
}
妿ç¨åºçæäºç¶æå¼åæªæè·çé误ï¼å®ä»¬ä¼åæ¢æ§è¡ï¼å¹¶å¯è½éä½ç¤ºä¾çå¯ç¨æ§ãå æ¤ï¼ä½ åºè¯¥ä½¿ç¨ try...catch
忥æè·é误ï¼å¦ä¸æç¤ºï¼
try {
console.log(getResult());
} catch (e) {
console.error(e);
}
å¨ä½ ä¸éè¦ catch
è¯å¥çåæ°æ¶ï¼è¯·çç¥å®ï¼
try {
console.log(getResult());
} catch {
console.error("åçäºä¸ä¸ªé误ï¼");
}
夿³¨ï¼ 请记ä½ï¼åªæå¯æ¢å¤çé误æåºè¯¥è¢«æè·åå¤çãææä¸å¯æ¢å¤çé误é½åºè¯¥è¢«æåºï¼å¹¶å¨è°ç¨æ ä¸é级åä¸å泡ã
对象 对象åç§°å½å®ä¹ä¸ä¸ªç±»æ¶ï¼ä½¿ç¨å¤§é©¼å³°å¼ï¼ä»¥å¤§å忝å¼å¤´ï¼æ¥å½åç±»ï¼ä½¿ç¨å°é©¼å³°å¼ï¼ä»¥å°å忝å¼å¤´ï¼æ¥å½åå¯¹è±¡å±æ§åæ¹æ³åã
å½å®ä¹ä¸ä¸ªå¯¹è±¡å®ä¾æ¶ï¼ä½¿ç¨åé¢éææé 彿°ï¼è¯·ä½¿ç¨å°é©¼å³°å¼ï¼ä»¥å°å忝å¼å¤´ï¼ä¸ºå®ä¾å½åãæ¯å¦ï¼
const hanSolo = new Person("Han Solo", 25, "he/him");
const luke = {
name: "Luke Skywalker",
age: 25,
pronouns: "he/him",
};
对äºå建æ®é对象ï¼å³ï¼å½ä¸æ¶åç±»æ¶ï¼ï¼è¯·ä½¿ç¨åé¢éèéæé 彿°ã
ä¾å¦ï¼è¿æ ·åï¼
ä¸è¦åè¿æ ·å建æ®é对象ï¼
const object = new Object();
对象类
ä½¿ç¨æ°ç ES ç±»è¯æ³è¿è¡å®ä¹ï¼è䏿¯æé 彿°ã
ä¾å¦ï¼è¿æ¯æ¨èçæ¹å¼ï¼
class Person {
constructor(name, age, pronouns) {
this.name = name;
this.age = age;
this.pronouns = pronouns;
}
greeting() {
console.log(`ä½ å¥½ï¼ææ¯ ${this.name}`);
}
}
ä½¿ç¨ extends
è¿è¡ç»§æ¿ï¼
class Teacher extends Person {
// â¦
}
è¦å®ä¹æ¹æ³ï¼è¯·ä½¿ç¨æ¹æ³å®ä¹è¯æ³ï¼
const obj = {
foo() {
// â¦
},
bar() {
// â¦
},
};
è䏿¯ï¼
const obj = {
foo: function () {
// â¦
},
bar: function () {
// â¦
},
};
å¯¹è±¡å±æ§
Object.prototype.hasOwnProperty()
æ¹æ³å·²è¢«å¼ç¨ï¼åè代ä¹çæ¯ Object.hasOwn()
ã
å¨å¯è½çæ åµä¸ï¼ä½¿ç¨ç®åæ¥é¿å 屿§æ è¯ç¬¦çéå¤ãæ¯å¦ï¼
function createObject(name, age) {
return { name, age };
}
ä¸è¦è¿æ ·åï¼
function createObject(name, age) {
return { name: name, age: age };
}
æ¬èååºäºæä»¬å¯¹ä½¿ç¨åªäºè¿ç®ç¬¦ä»¥å使¶ä½¿ç¨ç建议ã
æ¡ä»¶è¿ç®ç¬¦å½ä½ æ³è¦æ ¹æ®æ¡ä»¶å°ä¸ä¸ªåé¢éåå¨å°åé䏿¶ï¼è¯·ä½¿ç¨æ¡ä»¶ï¼ä¸å
ï¼è¿ç®ç¬¦è䏿¯ if...else
è¯å¥ãæ¤è§åä¹éç¨äºè¿å弿¶ãæ¯å¦ï¼
const x = condition ? 1 : 2;
èä¸è¦è¿æ ·ï¼
let x;
if (condition) {
x = 1;
} else {
x = 2;
}
æ¡ä»¶è¿ç®ç¬¦å¨åå»ºç¨æ¥æå°æ°ä¿¡æ¯çå符串æ¶å¾æå¸®å©ãå¨è¿ç§æ
åµä¸ï¼ä½¿ç¨å¸¸è§ç if...else
è¯å¥ä¼å¯¼è´åæå°æ¥å¿è¿æ ·ç坿ä½åæé¿ä»£ç åï¼ä¼æ··æ·ç¤ºä¾çéç¹ã
ä¼å 使ç¨ä¸¥æ ¼ç¸çï¼ä¸çå·ï¼åä¸çè¿ç®ç¬¦ï¼è䏿¯ç¸çè¿ç®ç¬¦ï¼åçå·ï¼åä¸çè¿ç®ç¬¦ã
åè¿æ ·ä½¿ç¨ä¸¥æ ¼ç¸çåä¸çè¿ç®ç¬¦ï¼
name === "Shilpa";
age !== 25;
ä¸è¦åä¸é¢è¿æ ·ä½¿ç¨å®½æ¾ç¸çåä¸çè¿ç®ç¬¦ï¼
name == "Shilpa";
age != 25;
å¦æä½ éè¦ä½¿ç¨ ==
æ !=
ï¼è¯·è®°ä½ == null
æ¯å¯ä¸å¯æ¥åçæ
åµãç±äº TypeScript 卿æå
¶ä»æ
åµä¸é½ä¼å¤±è´¥ï¼å æ¤æä»¬ä¸å¸æå¨ç¤ºä¾ä»£ç ä¸ä½¿ç¨ãèèæ·»å æ³¨éæ¥è§£éä½ ä¸ºä»ä¹éè¦å®ã
ä¼å
使ç¨ç®ä¾¿å¸å°å¼æµè¯ãä¾å¦ï¼ä½¿ç¨ if (x)
å if (!x)
ï¼è䏿¯ if (x === true)
å if (x === false)
ï¼é¤é以ä¸åçæ¹å¼å¤çä¸åç§ç±»çç弿åå¼ã
å符串åé¢éå¯ä»¥ç¨åå¼å·å
å«èµ·æ¥ï¼æ¯å¦ 'A string'
ï¼ä¹å¯ä»¥ç¨åå¼å·å
å«èµ·æ¥ï¼æ¯å¦ "A string"
ãä¸è¿ï¼è¯·ä¸è¦å¨æéè¦éæ©ä½¿ç¨åªä¸ªï¼Prettier ä¼ä¿æä¸è´ã
è¦å°å¼æå ¥å符串ï¼è¯·ä½¿ç¨æ¨¡æ¿åé¢éã
è¿éæ¯ä¸ä¸ªæ¨èçä½¿ç¨æ¨¡æ¿åé¢éçä¾åãå®ä»¬ç使ç¨å¯ä»¥é²æ¢å¤§éçç©ºæ ¼é误ã
const name = "Shilpa";
console.log(`ä½ å¥½ï¼ææ¯ ${name}ï¼`);
请ä¸è¦åè¿æ ·ä¸²èå符串ï¼
const name = "Shilpa";
console.log("ä½ å¥½ï¼ææ¯ " + name + "ï¼"); // ä½ å¥½ï¼ææ¯ Shilpaï¼
请ä¸è¦è¿åº¦ä½¿ç¨æ¨¡çåé¢éãå¦ææ²¡ææ¿æ¢çè¯ï¼è¯·ä½¿ç¨æ®éå符串ã
好çåéå对ç解代ç è³å ³éè¦ã
使ç¨ç®ççæ è¯ç¬¦ï¼å¹¶é¿å
ä¸å¸¸ç¨ç缩åã好çåéåéå¸¸å¨ 3 å° 10 个å符ä¹é´ï¼ä½è¿åªæ¯ä¸ä¸ªæç¤ºãä¾å¦ï¼accelerometer
æ¯ä¸ºäºå符é¿åº¦èåçç缩å acclmtr
æ´å
·æè¿°æ§ã
å°è¯ä½¿ç¨ç°å®ä¸çç¸å
³çä¾åï¼å
¶ä¸æ¯ä¸ªåé齿æ¸
æ°çè¯ä¹ãåªæå¨ç¤ºä¾ç®åä¸éææ¶æä½¿ç¨å ä½åç§°ï¼æ¯å¦ foo
å bar
ã
ä¸è¦ä½¿ç¨åçå©å½åæ³å½å约å®ãä¸è¦å¨åéååé¢å ä¸ç±»åãæ¯å¦ï¼ä¸è¦åæ bBought = oCar.sBuyer != null
æ sName = "John Doe"
ï¼èæ¯åæ bought = car.buyer !== null
æ sName = "John Doe"
ã
对äºéåï¼é¿å
å¨å½å䏿·»å ä¾å¦åè¡¨ãæ°ç»ãéåè¿æ ·çç±»ååç§°ã使ç¨å¤æ°å½¢å¼çå
容åç§°ãä¾å¦ï¼å¯¹äºæ±½è½¦æ°ç»ï¼ä½¿ç¨ cars
è䏿¯ carArray
æ carList
ãææ¶ä¼æä¾å¤ï¼æ¯å¦ä½ æ³å¨æ²¡æç¹å®åºç¨ç¨åºçä¸ä¸æä¸å±ç¤ºä¸ä¸ªç¹æ§çæ½è±¡å½¢å¼ã
对äºåå§å¼ï¼ä½¿ç¨å°é©¼å³°å½åæ³ï¼ä»¥å°å忝å¼å¤´ãä¸è¦ä½¿ç¨ _
ãå¨éå½çæ
åµä¸ï¼ä½¿ç¨ç®æ´ãå¯è¯»æ§å¥½ä¸è¯ä¹åçåç§°ãæ¯å¦ï¼ä½¿ç¨ currencyName
è䏿¯ currency_name
ã
é¿å
使ç¨å è¯åæææ ¼ï¼ä¾å¦ï¼ä½¿ç¨ car
è䏿¯ myCar
æ aCar
ãææ¶ä¼æä¾å¤ï¼æ¯å¦ä½ æ³å¨æ²¡æç¹å®åºç¨ç¨åºçä¸ä¸æä¸å±ç¤ºä¸ä¸ªç¹æ§çæ½è±¡å½¢å¼ã
使ç¨åéåå¦ä¸æç¤ºï¼
const playerScore = 0;
const speed = distance / time;
ä¸è¦åè¿æ ·å½ååéï¼
const thisIsaveryLONGVariableThatRecordsPlayerscore345654 = 0;
const s = d / t;
夿³¨ï¼ å¯ä¸ä¸å
许使ç¨å¯è¯»æ§å¥½çè¯ä¹åç§°çå°æ¹æ¯åå¨é常å
¬è®¤çæ¯ä¾ï¼ä¾å¦å° i
å j
ç¨äºå¾ªç¯è¿ä»£å¨ã
å¨å£°æåéå叏鿶ï¼ä½¿ç¨ let
å const
å
³é®åï¼è䏿¯ var
ãä¸é¢çä¾åå±ç¤ºäº MDN Web ææ¡£ä¸æ¨èçå䏿¨èçç¨æ³ï¼
妿ä¸ä¸ªåéä¸ä¼è¢«éæ°èµå¼ï¼è¯·ä½¿ç¨ const
ï¼å¦ä¸æç¤ºï¼
const name = "Shilpa";
console.log(name);
å¦æä½ ä¼æ¹ååéçå¼ï¼è¯·ä½¿ç¨ let
ï¼å¦ä¸æç¤ºï¼
let age = 40;
age++;
console.log("çæ¥å¿«ä¹ï¼");
ä¸é¢ç示ä¾å¨åºè¯¥ä½¿ç¨ const
çå°æ¹ä½¿ç¨äº let
ï¼ä»£ç ä»ç¶å¯ä»¥è¿è¡ï¼ä½æä»¬å¸æå¨ MDN Web ææ¡£ä»£ç 示ä¾ä¸é¿å
è¿ç§ç¨æ³ã
let name = "Shilpa";
console.log(name);
ä¸é¢ç示ä¾ä½¿ç¨ const
声æäºä¸ä¸ªåéï¼è¯¥åéä¼è¢«éæ°èµå¼ãéæ°èµå¼ä¼æåºä¸ä¸ªé误ã
const age = 40;
age++;
console.log("çæ¥å¿«ä¹ï¼");
ä¸é¢ç示ä¾ä½¿ç¨äº var
ï¼è¿ä¼æ±¡æå
¨å±ä½ç¨åï¼
var age = 40;
var name = "Shilpa";
ä¸è¡å£°æä¸ä¸ªåéï¼å¦ä¸æç¤ºï¼
let var1;
let var2;
let var3 = "å¼ ä¸";
let var4 = var3;
ä¸è¦å¨ä¸è¡ä¸éè¿éå·æé¾å¼å£°ææ¥å£°æå¤ä¸ªåéãé¿å åè¿æ ·å£°æåéï¼
let var1, var2;
let var3 = var4 = "å¼ ä¸"; // var4 被éå¼å建为å
¨å±åéï¼è¿å¨ä¸¥æ ¼æ¨¡å¼ä¸ä¼å¤±è´¥
é¿å
éå¼å¼ºå¶ç±»å转æ¢ãç¹å«æ¯ï¼é¿å
+val
以强å¶å°å¼è½¬æ¢æªä¸ºæ°åï¼ä»¥å "" + val
æ¥å°å
¶å¼ºå¶è½¬æ¢ä¸ºåç¬¦ä¸²ãæ¹ä¸ºå¨ä¸ä½¿ç¨ new
çæ
åµä¸ä½¿ç¨ Number()
å String()
ãä¾å¦ï¼
class Person {
#name;
#birthYear;
constructor(name, year) {
this.#name = String(name);
this.#birthYear = Number(year);
}
}
ä¸è¦è¿æ ·åï¼
class Person {
#name;
#birthYear;
constructor(name, year) {
this.#name = "" + name;
this.#birthYear = +year;
}
}
è¦é¿å
ç Web API
é¤äºè¿äº JavaScript è¯è¨ç¹æ§ä¹å¤ï¼æä»¬è¿å»ºè®®ä½ ç¢è®°ä¸äºä¸ Web API ç¸å ³çååã
é¿å æµè§å¨åç¼å¦æææä¸»æµæµè§å¨ï¼ChromeãEdgeãFirefox å Safariï¼é½æ¯ææä¸ªç¹æ§ï¼è¯·ä¸è¦å¨è¯¥ç¹æ§åé¢å ä¸åç¼ãæ¯å¦ï¼
const context = new AudioContext();
é¿å å¢å åç¼ç夿æ§ï¼ä¸è¦è¿æ ·åï¼
const AudioContext = window.AudioContext || window.webkitAudioContext;
const context = new AudioContext();
åæ ·çè§åä¹éç¨äº CSS åç¼ã
é¿å å·²å¼ç¨ç APIå½ä¸ä¸ªæ¹æ³ã屿§æä¸æ´ä¸ªæ¥å£é½å·²ç»å¼ç¨ï¼ä¸è¦ä½¿ç¨å®ï¼é¤äºå®çææ¡£ï¼ãç¸åï¼ä½¿ç¨ç°ä»£ç APIã
以䏿¯è¦é¿å ç Web API 以åç¨ä»ä¹æ¥æ¿æ¢å®ä»¬çé详尽å表ï¼
fetch()
æ¥æ¿ä»£ XHRï¼XMLHttpRequest
ï¼ãAudioWorklet
æ¥æ¿ä»£ ScriptProcessorNode
ã请ä¸è¦ä½¿ç¨ Element.innerHTML
å°çº¯ææ¬å
容æå
¥å°å
ç´ ä¸ï¼èæ¯ä½¿ç¨ Node.textContent
æ¿ä»£ãinnerHTML
屿§å¯è½ä¼å¯¼è´å®å
¨é®é¢ï¼å¦æå¼å人å䏿§å¶åæ°ãä½ä¸ºç¼åè
ï¼æä»¬è¶é¿å
使ç¨å®ï¼å¼åè
å¤å¶åç²è´´æä»¬çä»£ç æ¶äº§ççå®å
¨æ¼æ´å°±è¶å°ã
ä¸é¢çç¤ºä¾æ¼ç¤ºäº textContent
çç¨æ³ã
const text = "ç¶è乡亲们大家好";
const para = document.createElement("p");
para.textContent = text;
ä¸è¦ä½¿ç¨ innerHTML
å°çº¯ææ¬æå
¥å° DOM èç¹ä¸ã
const text = "ç¶è乡亲们大家好";
const para = document.createElement("p");
para.innerHTML = text;
alert()
彿°æ¯ä¸å¯é çãå¨ MDN Web ææ¡£ï¼å®å¨åµå
¥å° <iframe>
ä¸ç宿¶ç¤ºä¾å
æ æ³æ£å¸¸å·¥ä½ãæ¤å¤ï¼å®æ¯å¯¹æ´ä¸ªçªå£ç模ææç¤ºï¼è¿å¾ä»¤äººè®¨åãå¨éæä»£ç 示ä¾ä¸ï¼ä½¿ç¨ console.log()
æ console.error()
ãå¨å®æ¶ç¤ºä¾ä¸ï¼é¿å
ä½¿ç¨ console.log()
å console.error()
ï¼å 为å®ä»¬ä¸ä¼æ¾ç¤ºãèæ¯ä½¿ç¨ä¸ç¨ç UI å
ç´ ã
console.log()
ãconsole.error()
ãJavaScript åèââæµè§æä»¬ç JavaScript åè页é¢ï¼æ¥çä¸äºä¼ç§ãç®æ´ãææä¹ç JavaScript 代ç çæ®µã
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