JavaScript 䏿叏ç¨çä¸¤ç§æ°æ®ç»ææ¯ Object å Arrayã
- 对象æ¯ä¸ç§æ ¹æ®é®å卿°æ®çå®ä½ã
- æ°ç»æ¯ä¸ç§ç´æ¥å卿°æ®çæåºå表ã
使¯ï¼å½æä»¬æå®ä»¬ä¼ éç»å½æ°æ¶ï¼å½æ°å¯è½ä¸éè¦æ´ä¸ªå¯¹è±¡/æ°ç»ï¼èåªéè¦å ¶ä¸ä¸é¨åã
è§£æèµå¼ æ¯ä¸ç§ç¹æ®çè¯æ³ï¼å®ä½¿æä»¬å¯ä»¥å°æ°ç»æå¯¹è±¡âæå âè³ä¸ç³»ååéä¸ãææ¶è¿æ ·åæ´æ¹ä¾¿ã
è§£ææä½å¯¹é£äºå ·æå¾å¤åæ°åé»è®¤å¼çç彿°ä¹å¾å¥æãä¸é¢æä¸äºä¾åã
æ°ç»è§£æ
è¿æ¯ä¸ä¸ªå°æ°ç»è§£æå°åéä¸çä¾åï¼
// æä»¬æä¸ä¸ªåæ¾äºåååå§æ°çæ°ç»
let arr = ["John", "Smith"]
// è§£æèµå¼
// 设置 firstName = arr[0]
// 以å surname = arr[1]
let [firstName, surname] = arr;
alert(firstName); // John
alert(surname); // Smith
æä»¬å¯ä»¥ä½¿ç¨è¿äºåéèéåæ¥çæ°ç»é¡¹äºã
å½ä¸ split 彿°ï¼æå
¶ä»è¿åå¼ä¸ºæ°ç»ç彿°ï¼ç»åä½¿ç¨æ¶ï¼çèµ·æ¥æ´ä¼é
ï¼
let [firstName, surname] = "John Smith".split(' ');
alert(firstName); // John
alert(surname); // Smith
æ£å¦æä»¬æçå°çï¼è¯æ³å¾ç®åã使¯æå 个éè¦æ³¨æçç»èã让æä»¬éè¿æ´å¤çä¾åæ¥å æ·±çè§£ã
è¿ç§è¯æ³è¢«å«åâè§£æèµå¼âï¼æ¯å 为å®âæå¼âäºæ°ç»æå¯¹è±¡ï¼å°å ¶ä¸çåå ç´ å¤å¶ç»ä¸äºåéãåæ¥çæ°ç»æå¯¹è±¡èªèº«æ²¡æè¢«ä¿®æ¹ã
æ¢å¥è¯è¯´ï¼è§£æèµå¼åªæ¯åèµ·æ¥ç®æ´ä¸ç¹ã以ä¸ä¸¤ç§åæ³æ¯çä»·çï¼
// let [firstName, surname] = arr;
let firstName = arr[0];
let surname = arr[1];
å¯ä»¥éè¿æ·»å é¢å¤çéå·æ¥ä¸¢å¼æ°ç»ä¸ä¸æ³è¦çå ç´ ï¼
// ä¸éè¦ç¬¬äºä¸ªå
ç´
let [firstName, , title] = ["Julius", "Caesar", "Consul", "of the Roman Republic"];
alert( title ); // Consul
å¨ä¸é¢ç代ç ä¸ï¼æ°ç»ç第äºä¸ªå
ç´ è¢«è·³è¿äºï¼ç¬¬ä¸ä¸ªå
ç´ è¢«èµå¼ç»äº title åéãæ°ç»ä¸å©ä¸çå
ç´ ä¹é½è¢«è·³è¿äºï¼å 为å¨è¿æ²¡æå¯¹åºç»å®ä»¬çåéï¼ã
â¦â¦å®é ä¸ï¼æä»¬å¯ä»¥å°å ¶ä¸ä»»ä½å¯è¿ä»£å¯¹è±¡ä¸èµ·ä½¿ç¨ï¼èä¸ä» éäºæ°ç»ï¼
let [a, b, c] = "abc"; // ["a", "b", "c"]
let [one, two, three] = new Set([1, 2, 3]);
è¿ç§æ
åµä¸è§£æèµå¼æ¯éè¿è¿ä»£å³ä¾§ç弿¥å®æå·¥ä½çãè¿æ¯ä¸ç§ç¨äºå¯¹å¨ = å³ä¾§çå¼ä¸è°ç¨ for..of å¹¶è¿è¡èµå¼çæä½çè¯æ³ç³ã
æä»¬å¯ä»¥å¨çå·å·¦ä¾§ä½¿ç¨ä»»ä½âå¯ä»¥è¢«èµå¼çâä¸è¥¿ã
ä¾å¦ï¼ä¸ä¸ªå¯¹è±¡ç屿§ï¼
let user = {};
[user.name, user.surname] = "John Smith".split(' ');
alert(user.name); // John
alert(user.surname); // Smith
å¨åé¢çç« è䏿们已ç»è§è¿äº Object.entries(obj) æ¹æ³ã
æä»¬å¯ä»¥å° .entries() æ¹æ³ä¸è§£æè¯æ³ä¸å使ç¨ï¼æ¥éåä¸ä¸ªå¯¹è±¡çâé®âå¼â对ï¼
let user = {
name: "John",
age: 30
};
// 使ç¨å¾ªç¯éåé®âå¼å¯¹
for (let [key, value] of Object.entries(user)) {
alert(`${key}:${value}`); // name:John, then age:30
}
ç¨äº Map çç±»ä¼¼ä»£ç æ´ç®åï¼å 为 Map æ¯å¯è¿ä»£çï¼
let user = new Map();
user.set("name", "John");
user.set("age", "30");
// Map æ¯ä»¥ [key, value] 对çå½¢å¼è¿è¡è¿ä»£çï¼é常便äºè§£æ
for (let [key, value] of user) {
alert(`${key}:${value}`); // name:John, then age:30
}
使ç¨è§£æèµå¼æ¥äº¤æ¢ä¸¤ä¸ªåéç弿¯ä¸ä¸ªèåçæå·§ï¼
let guest = "Jane";
let admin = "Pete";
// 让æä»¬æ¥äº¤æ¢åéçå¼ï¼ä½¿å¾ guest = Peteï¼admin = Jane
[guest, admin] = [admin, guest];
alert(`${guest} ${admin}`); // Pete Janeï¼æå交æ¢ï¼ï¼
è¿éæä»¬å建äºä¸ä¸ªç±ä¸¤ä¸ªåéç»æçä¸´æ¶æ°ç»ï¼å¹¶ä¸ç«å³ä»¥é¢ åç顺åºå¯¹å ¶è¿è¡äºè§£æèµå¼ã
æä»¬ä¹å¯ä»¥ç¨è¿ç§æ¹å¼äº¤æ¢ä¸¤ä¸ªä»¥ä¸çåéã
å ¶ä½ç ââ¦â
é常ï¼å¦ææ°ç»æ¯å·¦è¾¹çå表é¿ï¼é£ä¹âå ¶ä½âçæ°ç»é¡¹ä¼è¢«çç¥ã
ä¾å¦ï¼è¿éåªåäºä¸¤é¡¹ï¼å ¶ä½ç就被忽ç¥äºï¼
let [name1, name2] = ["Julius", "Caesar", "Consul", "of the Roman Republic"];
alert(name1); // Julius
alert(name2); // Caesar
// å
¶ä½æ°ç»é¡¹æªè¢«åé
å°ä»»ä½å°æ¹
妿æä»¬è¿æ³æ¶éå
¶ä½çæ°ç»é¡¹ ââ æä»¬å¯ä»¥ä½¿ç¨ä¸ä¸ªç¹ "..." æ¥åå ä¸ä¸ªåæ°ä»¥è·åå
¶ä½æ°ç»é¡¹ï¼
let [name1, name2, ...rest] = ["Julius", "Caesar", "Consul", "of the Roman Republic"];
// rest æ¯å
å«ä»ç¬¬ä¸é¡¹å¼å§çå
¶ä½æ°ç»é¡¹çæ°ç»
alert(rest[0]); // Consul
alert(rest[1]); // of the Roman Republic
alert(rest.length); // 2
rest çå¼å°±æ¯æ°ç»ä¸å©ä¸çå
ç´ ç»æçæ°ç»ã
ä¸ä¸å®è¦ä½¿ç¨åéå restï¼æä»¬ä¹å¯ä»¥ä½¿ç¨ä»»ä½å
¶ä»çåéåãåªè¦ç¡®ä¿å®å颿ä¸ä¸ªç¹ï¼å¹¶ä¸å¨è§£æèµå¼çæåä¸ä¸ªåæ°ä½ç½®ä¸å°±è¡äºï¼
let [name1, name2, ...titles] = ["Julius", "Caesar", "Consul", "of the Roman Republic"];
// ç°å¨ titles = ["Consul", "of the Roman Republic"]
é»è®¤å¼
妿æ°ç»æ¯å·¦è¾¹çåéå表çï¼è¿éä¸ä¼åºç°æ¥éã缺å°å¯¹åºå¼çåéé½ä¼è¢«èµ undefinedï¼
let [firstName, surname] = [];
alert(firstName); // undefined
alert(surname); // undefined
妿æä»¬æ³è¦ä¸ä¸ªâé»è®¤âå¼ç»æªèµå¼çåéï¼æä»¬å¯ä»¥ä½¿ç¨ = æ¥æä¾ï¼
// é»è®¤å¼
let [name = "Guest", surname = "Anonymous"] = ["Julius"];
alert(name); // Juliusï¼æ¥èªæ°ç»çå¼ï¼
alert(surname); // Anonymousï¼é»è®¤å¼è¢«ä½¿ç¨äºï¼
é»è®¤å¼å¯ä»¥æ¯æ´å 夿ç表达å¼ï¼çè³å¯ä»¥æ¯å½æ°è°ç¨ãä¸è¿ï¼è¿äºè¡¨è¾¾å¼æå½æ°åªä¼å¨è¿ä¸ªåéæªè¢«èµå¼çæ¶åæä¼è¢«è®¡ç®ã
举个ä¾åï¼æä»¬ä½¿ç¨äº prompt 彿°æ¥æä¾ä¸¤ä¸ªé»è®¤å¼ï¼
// åªä¼æç¤ºè¾å
¥å§æ°
let [name = prompt('name?'), surname = prompt('surname?')] = ["Julius"];
alert(name); // Juliusï¼æ¥èªæ°ç»ï¼
alert(surname); // ä½ è¾å
¥çå¼
请注æï¼prompt å°ä»
é对缺失å¼ï¼surnameï¼è¿è¡ã
对象解æ
è§£æèµå¼åæ ·éç¨äºå¯¹è±¡ã
åºæ¬è¯æ³æ¯ï¼
let {var1, var2} = {var1:â¦, var2:â¦}
å¨çå·å³ä¾§æ¯ä¸ä¸ªå·²ç»åå¨çå¯¹è±¡ï¼æä»¬æ³æå®æåå°åéä¸ãçå·å·¦ä¾§å
å«äºå¯¹è±¡ç¸åºå±æ§çä¸ä¸ªç±»å¯¹è±¡â模å¼ï¼patternï¼âã卿ç®åçæ
åµä¸ï¼çå·å·¦ä¾§çå°±æ¯ {...} ä¸çåéåå表ã
å¦ä¸æç¤ºï¼
let options = {
title: "Menu",
width: 100,
height: 200
};
let {title, width, height} = options;
alert(title); // Menu
alert(width); // 100
alert(height); // 200
屿§ options.titleãoptions.width å options.height å¼è¢«èµç»äºå¯¹åºçåéã
åéç顺åºå¹¶ä¸éè¦ï¼ä¸é¢è¿ä¸ªä»£ç 乿¯çä»·çï¼
// æ¹å let {...} ä¸å
ç´ ç顺åº
let {height, width, title} = { title: "Menu", height: 200, width: 100 }
çå·å·¦ä¾§ç模å¼ï¼patternï¼å¯ä»¥æ´å å¤æï¼æå®å±æ§ååéä¹é´çæ å°å ³ç³»ã
妿æä»¬æ³æä¸ä¸ªå±æ§èµå¼ç»å¦ä¸ä¸ªååçåéï¼æ¯å¦æ options.width 屿§èµå¼ç»å为 w çåéï¼é£ä¹æä»¬å¯ä»¥ä½¿ç¨åå·æ¥è®¾ç½®åéåç§°ï¼
let options = {
title: "Menu",
width: 100,
height: 200
};
// { sourceProperty: targetVariable }
let {width: w, height: h, title} = options;
// width -> w
// height -> h
// title -> title
alert(title); // Menu
alert(w); // 100
alert(h); // 200
åå·çè¯æ³æ¯âä»å¯¹è±¡ä¸ä»ä¹å±æ§çå¼ï¼èµå¼ç»åªä¸ªåéâãä¸é¢çä¾åä¸ï¼å±æ§ width 被èµå¼ç»äº wï¼å±æ§ height 被èµå¼ç»äº hï¼å±æ§ title 被èµå¼ç»äºåååéã
对äºå¯è½ç¼ºå¤±ç屿§ï¼æä»¬å¯ä»¥ä½¿ç¨ "=" 设置é»è®¤å¼ï¼å¦ä¸æç¤ºï¼
let options = {
title: "Menu"
};
let {width = 100, height = 200, title} = options;
alert(title); // Menu
alert(width); // 100
alert(height); // 200
å°±åæ°ç»æå½æ°åæ°ä¸æ ·ï¼é»è®¤å¼å¯ä»¥æ¯ä»»æè¡¨è¾¾å¼çè³å¯ä»¥æ¯å½æ°è°ç¨ãå®ä»¬åªä¼å¨æªæä¾å¯¹åºç弿¶æä¼è¢«è®¡ç®/è°ç¨ã
å¨ä¸é¢ç代ç ä¸ï¼prompt æç¤ºè¾å
¥ width å¼ï¼ä½ä¸ä¼æç¤ºè¾å
¥ title å¼ï¼
let options = {
title: "Menu"
};
let {width = prompt("width?"), title = prompt("title?")} = options;
alert(title); // Menu
alert(width); // (prompt çè¿åå¼)
æä»¬è¿å¯ä»¥å°åå·åçå·ç»åèµ·æ¥ï¼
let options = {
title: "Menu"
};
let {width: w = 100, height: h = 200, title} = options;
alert(title); // Menu
alert(w); // 100
alert(h); // 200
妿æä»¬æä¸ä¸ªå ·æå¾å¤å±æ§çå¤æå¯¹è±¡ï¼é£ä¹æä»¬å¯ä»¥åªæåæéçå 容ï¼
let options = {
title: "Menu",
width: 100,
height: 200
};
// ä»
æå title ä½ä¸ºåé
let { title } = options;
alert(title); // Menu
å©ä½æ¨¡å¼ï¼patternï¼ââ¦â
å¦æå¯¹è±¡æ¥æç屿§æ°éæ¯æä»¬æä¾çåéæ°éè¿å¤ï¼è¯¥æä¹åï¼æä»¬å¯ä»¥åªåå ¶ä¸çæä¸äºå±æ§ï¼ç¶åæâå©ä½çâèµå¼å°å ¶ä»å°æ¹åï¼
æä»¬å¯ä»¥ä½¿ç¨å©ä½æ¨¡å¼ï¼patternï¼ï¼ä¸æ°ç»ç±»ä¼¼ãä¸äºè¾æ§çæµè§å¨ä¸æ¯ææ¤åè½ï¼ä¾å¦ IEï¼å¯ä»¥ä½¿ç¨ Babel å¯¹å ¶è¿è¡ polyfillï¼ï¼ä½å¯ä»¥å¨ç°ä»£æµè§å¨ä¸ä½¿ç¨ã
çèµ·æ¥å°±åè¿æ ·ï¼
let options = {
title: "Menu",
height: 200,
width: 100
};
// title = å为 title ç屿§
// rest = åæå©ä½å±æ§ç对象
let {title, ...rest} = options;
// ç°å¨ title="Menu", rest={height: 200, width: 100}
alert(rest.height); // 200
alert(rest.width); // 100
let æ¶çé·é±å¨ä¸é¢ç示ä¾ä¸ï¼åé齿¯å¨èµå¼ä¸éè¿æ£ç¡®æ¹å¼å£°æçï¼let {â¦} = {â¦}ãå½ç¶ï¼æä»¬ä¹å¯ä»¥ä½¿ç¨å·²æçåéï¼èä¸ç¨ letï¼ä½è¿éæä¸ä¸ªé·é±ã
以ä¸ä»£ç æ æ³æ£å¸¸è¿è¡ï¼
let title, width, height;
// è¿ä¸è¡åçäºé误
{title, width, height} = {title: "Menu", width: 200, height: 100};
é®é¢å¨äº JavaScript æä¸»ä»£ç æµï¼å³ä¸å¨å
¶ä»è¡¨è¾¾å¼ä¸ï¼ç {...} å½åä¸ä¸ªä»£ç åãè¿æ ·ç代ç åå¯ä»¥ç¨äºå¯¹è¯å¥åç»ï¼å¦ä¸æç¤ºï¼
{
// ä¸ä¸ªä»£ç å
let message = "Hello";
// ...
alert( message );
}
å æ¤ï¼è¿é JavaScript å宿们æä¸ä¸ªä»£ç åï¼è¿å°±æ¯æ¥éçåå ãæä»¬éè¦è§£æå®ã
为äºåè¯ JavaScript è¿ä¸æ¯ä¸ä¸ªä»£ç åï¼æä»¬å¯ä»¥ææ´ä¸ªèµå¼è¡¨è¾¾å¼ç¨æ¬å· (...) å
èµ·æ¥ï¼
let title, width, height;
// ç°å¨å°±å¯ä»¥äº
({title, width, height} = {title: "Menu", width: 200, height: 100});
alert( title ); // Menu
åµå¥è§£æ
妿ä¸ä¸ªå¯¹è±¡ææ°ç»åµå¥äºå ¶ä»çå¯¹è±¡åæ°ç»ï¼æä»¬å¯ä»¥å¨çå·å·¦ä¾§ä½¿ç¨æ´å¤æç模å¼ï¼patternï¼æ¥æåæ´æ·±å±çæ°æ®ã
å¨ä¸é¢ç代ç ä¸ï¼options ç屿§ size æ¯å¦ä¸ä¸ªå¯¹è±¡ï¼å±æ§ items æ¯å¦ä¸ä¸ªæ°ç»ãèµå¼è¯å¥ä¸çå·å·¦ä¾§ç模å¼ï¼patternï¼å
·æç¸åçç»æä»¥ä»ä¸æåå¼ï¼
let options = {
size: {
width: 100,
height: 200
},
items: ["Cake", "Donut"],
extra: true
};
// ä¸ºäºæ¸
æ°èµ·è§ï¼è§£æèµå¼è¯å¥è¢«åæå¤è¡çå½¢å¼
let {
size: { // æ size èµå¼å°è¿é
width,
height
},
items: [item1, item2], // æ items èµå¼å°è¿é
title = "Menu" // å¨å¯¹è±¡ä¸ä¸åå¨ï¼ä½¿ç¨é»è®¤å¼ï¼
} = options;
alert(title); // Menu
alert(width); // 100
alert(height); // 200
alert(item1); // Cake
alert(item2); // Donut
对象 options çææå±æ§ï¼é¤äº extra 屿§å¨çå·å·¦ä¾§ä¸åå¨ï¼é½è¢«èµå¼ç»äºå¯¹åºçåéï¼
æç»ï¼æä»¬å¾å°äº widthãheightãitem1ãitem2 åå
·æé»è®¤å¼ç title åéã
注æï¼size å items 没æå¯¹åºçåéï¼å 为æä»¬åçæ¯å®ä»¬çå
容ã
æºè½å½æ°åæ°
ææ¶ï¼ä¸ä¸ªå½æ°æå¾å¤åæ°ï¼å ¶ä¸å¤§é¨åç忰齿¯å¯éçãå¯¹ç¨æ·ç颿¥è¯´æ´æ¯å¦æ¤ãæ³è±¡ä¸ä¸ªå建èåç彿°ãå®å¯è½å ·æå®½åº¦åæ°ï¼é«åº¦åæ°ï¼æ é¢åæ°å项ç®å表çã
ä¸é¢æ¯å®ç°è¿ç§å½æ°çä¸ä¸ªå¾ä¸å¥½çåæ³ï¼
function showMenu(title = "Untitled", width = 200, height = 100, items = []) {
// ...
}
å¨å®é å¼åä¸ï¼è®°å¿å¦æ¤å¤çåæ°çä½ç½®æ¯ä¸ä¸ªå¾å¤§çè´æ ãé常éæå¼åç¯å¢ï¼IDEï¼ä¼å°½å叮婿们ï¼ç¹å«æ¯å½ä»£ç æè¯å¥½çææ¡£æ³¨éçæ¶åï¼ä½æ¯â¦â¦ å¦ä¸ä¸ªé®é¢å°±æ¯ï¼å¨å¤§é¨åçåæ°åªééç¨é»è®¤å¼çæ åµä¸ï¼è°ç¨è¿ä¸ªå½æ°æ¶ä¼éè¦å大éç undefinedã
åè¿æ ·ï¼
// å¨éç¨é»è®¤å¼å°±å¯ä»¥çä½ç½®è®¾ç½® undefined
showMenu("My Menu", undefined, undefined, ["Item1", "Item2"])
è¿å¤ªé¾çäºãèä¸ï¼å½æä»¬å¤çæ´å¤åæ°çæ¶åå¯è¯»æ§ä¼åå¾å¾å·®ã
è§£æèµå¼å¯ä»¥è§£å³è¿äºé®é¢ã
æä»¬å¯ä»¥ç¨ä¸ä¸ªå¯¹è±¡æ¥ä¼ éææåæ°ï¼è彿°è´è´£æè¿ä¸ªå¯¹è±¡è§£ææåä¸ªåæ°ï¼
// æä»¬ä¼ éä¸ä¸ªå¯¹è±¡ç»å½æ°
let options = {
title: "My menu",
items: ["Item1", "Item2"]
};
// â¦â¦ç¶å彿°é©¬ä¸æå¯¹è±¡è§£ææåé
function showMenu({title = "Untitled", width = 200, height = 100, items = []}) {
// title, items â æåäº optionsï¼
// width, height â 使ç¨é»è®¤å¼
alert( `${title} ${width} ${height}` ); // My Menu 200 100
alert( items ); // Item1, Item2
}
showMenu(options);
æä»¬ä¹å¯ä»¥ä½¿ç¨å¸¦æåµå¥å¯¹è±¡ååå·æ å°çæ´å 夿çè§£æï¼
let options = {
title: "My menu",
items: ["Item1", "Item2"]
};
function showMenu({
title = "Untitled",
width: w = 100, // width goes to w
height: h = 200, // height goes to h
items: [item1, item2] // items first element goes to item1, second to item2
}) {
alert( `${title} ${w} ${h}` ); // My Menu 100 200
alert( item1 ); // Item1
alert( item2 ); // Item2
}
showMenu(options);
宿´è¯æ³åè§£æèµå¼æ¯ä¸æ ·çï¼
function({
incomingProperty: varName = defaultValue
...
})
对äºåæ°å¯¹è±¡ï¼å±æ§ incomingProperty 对åºçå鿝 varNameï¼é»è®¤å¼æ¯ defaultValueã
请注æï¼è¿ç§è§£æåå®äº showMenu() 彿°ç¡®å®åå¨åæ°ã妿æä»¬æ³è®©ææçåæ°é½ä½¿ç¨é»è®¤å¼ï¼é£æä»¬åºè¯¥ä¼ éä¸ä¸ªç©ºå¯¹è±¡ï¼
showMenu({}); // ä¸éï¼ææå¼é½åé»è®¤å¼
showMenu(); // è¿æ ·ä¼å¯¼è´é误
æä»¬å¯ä»¥éè¿æå®ç©ºå¯¹è±¡ {} 为æ´ä¸ªåæ°å¯¹è±¡çé»è®¤å¼æ¥è§£å³è¿ä¸ªé®é¢ï¼
function showMenu({ title = "Menu", width = 100, height = 200 } = {}) {
alert( `${title} ${width} ${height}` );
}
showMenu(); // Menu 100 200
å¨ä¸é¢ç代ç ä¸ï¼æ´ä¸ªåæ°å¯¹è±¡çé»è®¤æ¯ {}ï¼å æ¤æ»ä¼æå
容å¯ä»¥ç¨æ¥è§£æã
æ»ç»
-
è§£æèµå¼å¯ä»¥ç®æ´å°å°ä¸ä¸ªå¯¹è±¡ææ°ç»æå¼èµå¼å°å¤ä¸ªåéä¸ã
-
è§£æå¯¹è±¡ç宿´è¯æ³ï¼
let {prop : varName = default, ...rest} = objectè¿è¡¨ç¤ºå±æ§
propä¼è¢«èµå¼ç»åévarNameï¼å¦ææ²¡æè¿ä¸ªå±æ§çè¯ï¼å°±ä¼ä½¿ç¨é»è®¤å¼defaultãæ²¡æå¯¹åºæ å°çå¯¹è±¡å±æ§ä¼è¢«å¤å¶å°
rest对象ã -
è§£ææ°ç»ç宿´è¯æ³ï¼
let [item1 = default, item2, ...rest] = arrayæ°ç»ç第ä¸ä¸ªå ç´ è¢«èµå¼ç»
item1ï¼ç¬¬äºä¸ªå ç´ è¢«èµå¼ç»item2ï¼å©ä¸çææå ç´ è¢«å¤å¶å°å¦ä¸ä¸ªæ°ç»restã -
ä»åµå¥æ°ç»/å¯¹è±¡ä¸æåæ°æ®ä¹æ¯å¯ä»¥çï¼æ¤æ¶çå·å·¦ä¾§å¿ é¡»åçå·å³ä¾§æç¸åçç»æã
è¯è®º
<code>æ ç¾æå ¥åªæå 个è¯ç代ç ï¼æå ¥å¤è¡ä»£ç å¯ä»¥ä½¿ç¨<pre>æ ç¾ï¼å¯¹äºè¶ è¿ 10 è¡ç代ç ï¼å»ºè®®ä½ ä½¿ç¨æ²ç®±ï¼plnkrï¼JSBinï¼codepenâ¦ï¼