对象å 许åå¨é®å¼éåï¼è¿å¾å¥½ã
ä½å¾å¤æ¶åæä»¬åç°è¿éè¦ æåºéåï¼éé¢çå ç´ é½æ¯æé¡ºåºæåçãä¾å¦ï¼æä»¬å¯è½éè¦åå¨ä¸äºåè¡¨ï¼æ¯å¦ç¨æ·ãåå以å HTML å ç´ çã
è¿é使ç¨å¯¹è±¡å°±ä¸æ¯å¾æ¹ä¾¿äºï¼å 为对象ä¸è½æä¾è½å¤ç®¡çå ç´ é¡ºåºçæ¹æ³ãæä»¬ä¸è½å¨å·²æçå ç´ âä¹é´âæå ¥ä¸ä¸ªæ°ç屿§ãè¿ç§åºæ¯ä¸å¯¹è±¡å°±ä¸å¤ªéç¨äºã
è¿æ¶ä¸ä¸ªç¹æ®çæ°æ®ç»ææ°ç»ï¼Arrayï¼å°±æ´¾ä¸ç¨åºäºï¼å®è½å卿åºçéåã
声æ
å建ä¸ä¸ªç©ºæ°ç»æä¸¤ç§è¯æ³ï¼
let arr = new Array();
let arr = [];
ç»å¤§å¤æ°æ åµä¸ä½¿ç¨ç齿¯ç¬¬äºç§è¯æ³ãæä»¬å¯ä»¥å¨æ¹æ¬å·ä¸æ·»å åå§å ç´ ï¼
let fruits = ["Apple", "Orange", "Plum"];
æ°ç»å ç´ ä» 0 å¼å§ç¼å·ã
æä»¬å¯ä»¥éè¿æ¹æ¬å·ä¸çæ°åè·åå ç´ ï¼
let fruits = ["Apple", "Orange", "Plum"];
alert( fruits[0] ); // Apple
alert( fruits[1] ); // Orange
alert( fruits[2] ); // Plum
å¯ä»¥æ¿æ¢å ç´ ï¼
fruits[2] = 'Pear'; // ç°å¨åæäº ["Apple", "Orange", "Pear"]
â¦â¦æè åæ°ç»æ°å ä¸ä¸ªå ç´ ï¼
fruits[3] = 'Lemon'; // ç°å¨åæ ["Apple", "Orange", "Pear", "Lemon"]
length 屿§ç弿¯æ°ç»ä¸å
ç´ çæ»ä¸ªæ°ï¼
let fruits = ["Apple", "Orange", "Plum"];
alert( fruits.length ); // 3
ä¹å¯ä»¥ç¨ alert æ¥æ¾ç¤ºæ´ä¸ªæ°ç»ã
let fruits = ["Apple", "Orange", "Plum"];
alert( fruits ); // Apple,Orange,Plum
æ°ç»å¯ä»¥åå¨ä»»ä½ç±»åçå ç´ ã
ä¾å¦:
// æ··åå¼
let arr = [ 'Apple', { name: 'John' }, true, function() { alert('hello'); } ];
// è·åç´¢å¼ä¸º 1 ç对象ç¶åæ¾ç¤ºå®ç name
alert( arr[1].name ); // John
// è·åç´¢å¼ä¸º 3 ç彿°å¹¶æ§è¡
arr[3](); // hello
æ°ç»å°±åå¯¹è±¡ä¸æ ·ï¼å¯ä»¥ä»¥éå·ç»å°¾ï¼
let fruits = [
"Apple",
"Orange",
"Plum",
];
å 为æ¯ä¸è¡é½æ¯ç¸ä¼¼çï¼æä»¥è¿ç§ä»¥âéå·ç»å°¾âçæ¹å¼ä½¿å¾æå ¥/ç§»é¤é¡¹å徿´å ç®åã
ä½¿ç¨ âatâ è·åæåä¸ä¸ªå ç´
å设æä»¬æ³è¦æ°ç»çæåä¸ä¸ªå ç´ ã
ä¸äºç¼ç¨è¯è¨å
许æä»¬ä½¿ç¨è´æ°ç´¢å¼æ¥å®ç°è¿ä¸ç¹ï¼ä¾å¦ fruits[-1]ã
ä½å¨ JavaScript ä¸è¿è¡ä¸éãç»æå°æ¯ undefinedï¼å ä¸ºæ¹æ¬å·ä¸çç´¢å¼æ¯è¢«æç
§å
¶å颿æå¤ççã
æä»¬å¯ä»¥æ¾å¼å°è®¡ç®æåä¸ä¸ªå
ç´ çç´¢å¼ï¼ç¶å访é®å®ï¼fruits[fruits.length - 1]ã
let fruits = ["Apple", "Orange", "Plum"];
alert( fruits[fruits.length-1] ); // Plum
æç¹éº»ç¦ï¼ä¸æ¯åï¼æä»¬éè¦å两次åéåã
幸è¿çæ¯ï¼è¿éæä¸ä¸ªæ´ç®ççè¯æ³ fruits.at(-1)ï¼
let fruits = ["Apple", "Orange", "Plum"];
// ä¸ fruits[fruits.length-1] ç¸å
alert( fruits.at(-1) ); // Plum
æ¢å¥è¯è¯´ï¼arr.at(i)ï¼
- 妿
i >= 0ï¼åä¸arr[i]å®å ¨ç¸åã - 对äº
iä¸ºè´æ°çæ åµï¼å®å仿°ç»çå°¾é¨ååæ°ã
pop/push, shift/unshift æ¹æ³
éåï¼queueï¼æ¯æå¸¸è§çä½¿ç¨æ°ç»çæ¹æ³ä¹ä¸ãå¨è®¡ç®æºç§å¦ä¸ï¼è¿è¡¨ç¤ºæ¯æä¸¤ä¸ªæä½çä¸ä¸ªæåºå ç´ çéåï¼
push卿«ç«¯æ·»å ä¸ä¸ªå ç´ .shiftååºéåé¦ç«¯çä¸ä¸ªå ç´ ï¼æ´ä¸ªéåå¾åç§»ï¼è¿æ ·åå æç¬¬äºçå ç´ ç°å¨æå¨äºç¬¬ä¸ã
è¿ä¸¤ç§æä½æ°ç»é½æ¯æã
éåçåºç¨å¨å®è·µä¸ç»å¸¸ä¼ç¢°å°ãä¾å¦éè¦å¨å±å¹ä¸æ¾ç¤ºæ¶æ¯éåã
æ°ç»è¿æå¦ä¸ä¸ªç¨ä¾ï¼å°±æ¯æ°æ®ç»æ æ ã
宿¯æä¸¤ç§æä½ï¼
push卿«ç«¯æ·»å ä¸ä¸ªå ç´ .pop仿«ç«¯ååºä¸ä¸ªå ç´ .
æä»¥æ°å ç´ çæ·»å åååºé½æ¯ä»âæ«ç«¯âå¼å§çã
æ é常被被形容æä¸å å¡çï¼è¦ä¹å¨æä¸é¢æ·»å å¡çï¼è¦ä¹ä»æä¸é¢æ¿èµ°å¡çï¼
å¯¹äºæ æ¥è¯´ï¼æåæ¾è¿å»çå å®¹æ¯æå æ¥æ¶çï¼ä¹å«å LIFOï¼Last-In-First-Outï¼ï¼å³åè¿å åºæ³åãèä¸éåç¸å¯¹åºçå«å FIFOï¼First-In-First-Outï¼ï¼å³å è¿å åºã
JavaScript ä¸çæ°ç»æ¢å¯ä»¥ç¨ä½éåï¼ä¹å¯ä»¥ç¨ä½æ ãå®ä»¬å è®¸ä½ ä»é¦ç«¯/æ«ç«¯æ¥æ·»å /å é¤å ç´ ã
è¿å¨è®¡ç®æºç§å¦ä¸ï¼å è®¸è¿æ ·çæä½çæ°æ®ç»æè¢«ç§°ä¸º å端éåï¼dequeï¼ã
ä½ç¨äºæ°ç»æ«ç«¯çæ¹æ³ï¼
pop-
ååºå¹¶è¿åæ°ç»çæåä¸ä¸ªå ç´ ï¼
let fruits = ["Apple", "Orange", "Pear"]; alert( fruits.pop() ); // ç§»é¤ "Pear" ç¶å alert æ¾ç¤ºåºæ¥ alert( fruits ); // Apple, Orangefruits.pop()åfruits.at(-1)é½è¿åæ°ç»çæåä¸ä¸ªå ç´ ï¼ä½fruits.pop()åæ¶ä¹å é¤äºæ°ç»çæåä¸ä¸ªå ç´ ï¼è¿èä¿®æ¹äºåæ°ç»ã push-
卿°ç»æ«ç«¯æ·»å å ç´ ï¼
let fruits = ["Apple", "Orange"]; fruits.push("Pear"); alert( fruits ); // Apple, Orange, Pearè°ç¨
fruits.push(...)ä¸fruits[fruits.length] = ...æ¯ä¸æ ·çã
ä½ç¨äºæ°ç»é¦ç«¯çæ¹æ³ï¼
shift-
ååºæ°ç»ç第ä¸ä¸ªå ç´ å¹¶è¿åå®ï¼
let fruits = ["Apple", "Orange", "Pear"]; alert( fruits.shift() ); // ç§»é¤ Apple ç¶å alert æ¾ç¤ºåºæ¥ alert( fruits ); // Orange, Pear unshift-
卿°ç»çé¦ç«¯æ·»å å ç´ ï¼
let fruits = ["Orange", "Pear"]; fruits.unshift('Apple'); alert( fruits ); // Apple, Orange, Pear
push å unshift æ¹æ³é½å¯ä»¥ä¸æ¬¡æ·»å å¤ä¸ªå
ç´ ï¼
let fruits = ["Apple"];
fruits.push("Orange", "Peach");
fruits.unshift("Pineapple", "Lemon");
// ["Pineapple", "Lemon", "Apple", "Orange", "Peach"]
alert( fruits );
å é¨
æ°ç»æ¯ä¸ç§ç¹æ®ç对象ãä½¿ç¨æ¹æ¬å·æ¥è®¿é®å±æ§ arr[0] å®é
䏿¯æ¥èªäºå¯¹è±¡çè¯æ³ãå®å
¶å®ä¸ obj[key] ç¸åï¼å
¶ä¸ arr æ¯å¯¹è±¡ï¼èæ°åç¨ä½é®ï¼keyï¼ã
å®ä»¬æ©å±äºå¯¹è±¡ï¼æä¾äºç¹æ®çæ¹æ³æ¥å¤çæåºçæ°æ®éå以å length 屿§ãä½ä»æ¬è´¨ä¸è®²ï¼å®ä»ç¶æ¯ä¸ä¸ªå¯¹è±¡ã
è®°ä½ï¼å¨ JavaScript ä¸åªæ 8 ç§åºæ¬çæ°æ®ç±»åï¼è¯¦è§ æ°æ®ç±»å ä¸ç« ï¼ãæ°ç»æ¯ä¸ä¸ªå¯¹è±¡ï¼å æ¤å ¶è¡ä¸ºä¹åä¸ä¸ªå¯¹è±¡ã
ä¾å¦ï¼å®æ¯éè¿å¼ç¨æ¥å¤å¶çï¼
let fruits = ["Banana"]
let arr = fruits; // éè¿å¼ç¨å¤å¶ (两个åéå¼ç¨çæ¯ç¸åçæ°ç»)
alert( arr === fruits ); // true
arr.push("Pear"); // éè¿å¼ç¨ä¿®æ¹æ°ç»
alert( fruits ); // Banana, Pear â ç°å¨æ 2 项äº
â¦â¦ä½æ¯æ°ç»çæ£ç¹æ®çæ¯å®ä»¬çå é¨å®ç°ãJavaScript 弿å°è¯æè¿äºå ç´ ä¸ä¸ªæ¥ä¸ä¸ªå°åå¨å¨è¿ç»çå ååºåï¼å°±åæ¬ç« çæå¾æ¾ç¤ºç䏿 ·ï¼èä¸è¿æä¸äºå ¶å®çä¼åï¼ä»¥ä½¿æ°ç»è¿è¡å¾é常快ã
使¯ï¼å¦ææä»¬ä¸åâæåºéåâ飿 ·ä½¿ç¨æ°ç»ï¼èæ¯å常è§å¯¹è±¡é£æ ·ä½¿ç¨æ°ç»ï¼è¿äºå°±é½ä¸çæäºã
ä¾å¦ï¼ä»ææ¯ä¸è®²ï¼æä»¬å¯ä»¥è¿æ ·å:
let fruits = []; // å建ä¸ä¸ªæ°ç»
fruits[99999] = 5; // åé
ç´¢å¼è¿å¤§äºæ°ç»é¿åº¦ç屿§
fruits.age = 25; // å建ä¸ä¸ªå
·æä»»æåç§°ç屿§
è¿æ¯å¯ä»¥çï¼å 为æ°ç»æ¯åºäºå¯¹è±¡çãæä»¬å¯ä»¥ç»å®ä»¬æ·»å ä»»ä½å±æ§ã
使¯ Javascript 弿ä¼åç°ï¼æä»¬å¨å使ç¨å¸¸è§å¯¹è±¡ä¸æ ·ä½¿ç¨æ°ç»ï¼é£ä¹é对æ°ç»çä¼åå°±ä¸åéç¨äºï¼ç¶å对åºçä¼åå°±ä¼è¢«å ³éï¼è¿äºä¼åæå¸¦æ¥çä¼å¿ä¹å°±è¡ç¶æ åäºã
æ°ç»è¯¯ç¨çå ç§æ¹å¼:
- æ·»å ä¸ä¸ªéæ°åç屿§ï¼æ¯å¦
arr.test = 5ã - å¶é 空æ´ï¼æ¯å¦ï¼æ·»å
arr[0]ï¼ç¶åæ·»åarr[1000](å®ä»¬ä¸é´ä»ä¹é½æ²¡æ)ã - 以ååºå¡«å
æ°ç»ï¼æ¯å¦
arr[1000]ï¼arr[999]ççã
è¯·å°æ°ç»è§ä¸ºä½ç¨äº æåºæ°æ® çç¹æ®ç»æãå®ä»¬ä¸ºæ¤æä¾äºç¹æ®çæ¹æ³ãæ°ç»å¨ JavaScript 弿å
鍿¯ç»è¿ç¹æ®è°æ´çï¼ä½¿å¾æ´å¥½å°ä½ç¨äºè¿ç»çæåºæ°æ®ï¼æä»¥è¯·ä»¥æ£ç¡®çæ¹å¼ä½¿ç¨æ°ç»ãå¦æä½ éè¦ä»»æé®å¼ï¼é£å¾æå¯è½å®é
ä¸ä½ éè¦çæ¯å¸¸è§å¯¹è±¡ {}ã
æ§è½
push/pop æ¹æ³è¿è¡çæ¯è¾å¿«ï¼è shift/unshift æ¯è¾æ
¢ã
为ä»ä¹ä½ç¨äºæ°ç»çæ«ç«¯ä¼æ¯é¦ç«¯å¿«å¢ï¼è®©æä»¬çç卿§è¡æé´é½åçäºä»ä¹ï¼
fruits.shift(); // ä»é¦ç«¯ååºä¸ä¸ªå
ç´
åªè·åå¹¶ç§»é¤ç´¢å¼ 0 对åºçå
ç´ æ¯ä¸å¤çãå
¶å®å
ç´ ä¹éè¦è¢«éæ°ç¼å·ã
shift æä½å¿
é¡»åä¸ä»¶äº:
- ç§»é¤ç´¢å¼ä¸º
0çå ç´ ã - æææçå
ç´ å左移å¨ï¼æç´¢å¼
1æ¹æ0ï¼2æ¹æ1以æ¤ç±»æ¨ï¼å¯¹å ¶éæ°ç¼å·ã - æ´æ°
length屿§ã
æ°ç»éçå ç´ è¶å¤ï¼ç§»å¨å®ä»¬å°±è¦è±è¶å¤çæ¶é´ï¼ä¹å°±æå³çè¶å¤çå åæä½ã
unshift 乿¯ä¸æ ·ï¼ä¸ºäºå¨æ°ç»çé¦ç«¯æ·»å å
ç´ ï¼æä»¬é¦å
éè¦å°ç°æçå
ç´ åå³ç§»å¨ï¼å¢å å®ä»¬çç´¢å¼å¼ã
é£ push/pop æ¯ä»ä¹æ ·çå¢ï¼å®ä»¬ä¸éè¦ç§»å¨ä»»ä½ä¸è¥¿ã妿仿«ç«¯ç§»é¤ä¸ä¸ªå
ç´ ï¼pop æ¹æ³åªéè¦æ¸
çç´¢å¼å¼å¹¶ç¼©ç length å°±å¯ä»¥äºã
pop æä½çè¡ä¸ºï¼
fruits.pop(); // 仿«ç«¯åèµ°ä¸ä¸ªå
ç´
pop æ¹æ³ä¸éè¦ç§»å¨ä»»ä½ä¸è¥¿ï¼å 为å
¶å®å
ç´ é½ä¿çäºåèªçç´¢å¼ãè¿å°±æ¯ä¸ºä»ä¹ pop ä¼ç¹å«å¿«ã
push æ¹æ³ä¹æ¯ä¸æ ·çã
循ç¯
éåæ°ç»æå¤èçæ¹å¼å°±æ¯ for 循ç¯ï¼
let arr = ["Apple", "Orange", "Pear"];
for (let i = 0; i < arr.length; i++) {
alert( arr[i] );
}
ä½å¯¹äºæ°ç»æ¥è¯´è¿æå¦ä¸ç§å¾ªç¯æ¹å¼ï¼for..ofï¼
let fruits = ["Apple", "Orange", "Plum"];
// éåæ°ç»å
ç´
for (let fruit of fruits) {
alert( fruit );
}
for..of ä¸è½è·åå½åå
ç´ çç´¢å¼ï¼åªæ¯è·åå
ç´ å¼ï¼ä½å¤§å¤æ°æ
嵿¯å¤ç¨çãèä¸è¿æ ·åæ´çã
ææ¯ä¸æ¥è®²ï¼å 为æ°ç»ä¹æ¯å¯¹è±¡ï¼æä»¥ä½¿ç¨ for..in 乿¯å¯ä»¥çï¼
let arr = ["Apple", "Orange", "Pear"];
for (let key in arr) {
alert( arr[key] ); // Apple, Orange, Pear
}
ä½è¿å ¶å®æ¯ä¸ä¸ªå¾ä¸å¥½çæ³æ³ã伿ä¸äºæ½å¨é®é¢åå¨ï¼
-
for..in循ç¯ä¼éå ææå±æ§ï¼ä¸ä» ä» æ¯è¿äºæ°å屿§ã卿µè§å¨åå ¶å®ç¯å¢ä¸æä¸ç§ç§°ä¸ºâç±»æ°ç»âç对象ï¼å®ä»¬ çä¼¼æ¯æ°ç»ãä¹å°±æ¯è¯´ï¼å®ä»¬æ
lengthåç´¢å¼å±æ§ï¼ä½æ¯ä¹å¯è½æå ¶å®çéæ°åç屿§åæ¹æ³ï¼è¿éå¸¸æ¯æä»¬ä¸éè¦çãfor..in循ç¯ä¼æå®ä»¬é½ååºæ¥ãæä»¥å¦ææä»¬éè¦å¤çç±»æ°ç»å¯¹è±¡ï¼è¿äºâé¢å¤âç屿§å°±ä¼åå¨é®é¢ã -
for..in循ç¯éç¨äºæ®é对象ï¼å¹¶ä¸åäºå¯¹åºçä¼åã使¯ä¸éç¨äºæ°ç»ï¼å æ¤éåº¦è¦æ ¢ 10-100 åãå½ç¶å³ä½¿æ¯è¿æ ·ä¹ä¾ç¶é常快ãåªæå¨éå°ç¶é¢æ¶å¯è½ä¼æé®é¢ã使¯æä»¬ä»ç¶åºè¯¥äºè§£è¿å ¶ä¸çä¸åã
é常æ¥è¯´ï¼æä»¬ä¸åºè¯¥ç¨ for..in æ¥å¤çæ°ç»ã
å ³äº âlengthâ
å½æä»¬ä¿®æ¹æ°ç»çæ¶åï¼length 屿§ä¼èªå¨æ´æ°ãåç¡®æ¥è¯´ï¼å®å®é
ä¸ä¸æ¯æ°ç»éå
ç´ ç个æ°ï¼èæ¯æå¤§çæ°åç´¢å¼å¼å ä¸ã
ä¾å¦ï¼ä¸ä¸ªæ°ç»åªæä¸ä¸ªå
ç´ ï¼ä½æ¯è¿ä¸ªå
ç´ çç´¢å¼å¼å¾å¤§ï¼é£ä¹è¿ä¸ªæ°ç»ç length ä¹ä¼å¾å¤§ï¼
let fruits = [];
fruits[123] = "Apple";
alert( fruits.length ); // 124
è¦ç¥éçæ¯æä»¬é常ä¸ä¼è¿æ ·ä½¿ç¨æ°ç»ã
length 屿§çå¦ä¸ä¸ªæææçç¹æ¯å®æ¯å¯åçã
妿æä»¬æå¨å¢å å®ï¼åä¸ä¼åçä»»ä½æè¶£çäºå¿ã使¯å¦ææä»¬åå°å®ï¼æ°ç»å°±ä¼è¢«æªæã该è¿ç¨æ¯ä¸å¯éçï¼ä¸é¢æ¯ä¾åï¼
let arr = [1, 2, 3, 4, 5];
arr.length = 2; // æªæå°åªå© 2 个å
ç´
alert( arr ); // [1, 2]
arr.length = 5; // åæ length å 忥
alert( arr[3] ); // undefinedï¼è¢«æªæçé£äºæ°å¼å¹¶æ²¡æåæ¥
æä»¥ï¼æ¸
空æ°ç»æç®åçæ¹æ³å°±æ¯ï¼arr.length = 0;ã
new Array()
è¿æ¯å建æ°ç»çå¦ä¸ç§è¯æ³ï¼
let arr = new Array("Apple", "Pear", "etc");
å®å¾å°è¢«ä½¿ç¨ï¼å ä¸ºæ¹æ¬å· [] æ´çæ´ç®æ´ãèä¸ï¼è¿ç§è¯æ³è¿æä¸ä¸ªæ£æçç¹æ§ã
å¦æä½¿ç¨åä¸ªåæ°ï¼å³æ°åï¼è°ç¨ new Arrayï¼é£ä¹å®ä¼å建ä¸ä¸ª æå®äºé¿åº¦ï¼å´æ²¡æä»»ä½é¡¹ çæ°ç»ã
让æä»¬ççå¦ä½æ¬èµ·ç³å¤´ç ¸èªå·±çè:
let arr = new Array(2); // ä¼å建ä¸ä¸ª [2] çæ°ç»åï¼
alert( arr[0] ); // undefinedï¼æ²¡æå
ç´ ã
alert( arr.length ); // length 2
为äºé¿å è¿ç§æå¤æ åµï¼æä»¬éå¸¸ä½¿ç¨æ¹æ¬å·ï¼é¤éæä»¬ççç¥éèªå·±å¨åä»ä¹ã
å¤ç»´æ°ç»
æ°ç»éç项ä¹å¯ä»¥æ¯æ°ç»ãæä»¬å¯ä»¥å°å ¶ç¨äºå¤ç»´æ°ç»ï¼ä¾å¦åå¨ç©éµï¼
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
alert( matrix[1][1] ); // æä¸é´çé£ä¸ªæ°
toString
æ°ç»æèªå·±ç toString æ¹æ³çå®ç°ï¼ä¼è¿å以éå·éå¼çå
ç´ å表ã
ä¾å¦ï¼
let arr = [1, 2, 3];
alert( arr ); // 1,2,3
alert( String(arr) === '1,2,3' ); // true
æ¤å¤ï¼æä»¬è¯è¯è¿è¡ä¸ä¸è¿ä¸ªï¼
alert( [] + 1 ); // "1"
alert( [1] + 1 ); // "11"
alert( [1,2] + 1 ); // "1,21"
æ°ç»æ²¡æ Symbol.toPrimitiveï¼ä¹æ²¡æ valueOfï¼å®ä»¬åªè½æ§è¡ toString è¿è¡è½¬æ¢ï¼æä»¥è¿é [] å°±åæäºä¸ä¸ªç©ºå符串ï¼[1] åæäº "1"ï¼[1,2] åæäº "1,2"ã
å½ "+" è¿ç®ç¬¦æä¸äºé¡¹å å°å符串å颿¶ï¼å å·åé¢ç项ä¹ä¼è¢«è½¬æ¢æåç¬¦ä¸²ï¼æä»¥ä¸ä¸æ¥å°±ä¼æ¯è¿æ ·ï¼
alert( "" + 1 ); // "1"
alert( "1" + 1 ); // "11"
alert( "1,2" + 1 ); // "1,21"
ä¸è¦ä½¿ç¨ == æ¯è¾æ°ç»
JavaScript ä¸çæ°ç»ä¸å
¶å®ä¸äºç¼ç¨è¯è¨çä¸åï¼ä¸åºè¯¥ä½¿ç¨ == è¿ç®ç¬¦æ¯è¾ JavaScript ä¸çæ°ç»ã
该è¿ç®ç¬¦ä¸ä¼å¯¹æ°ç»è¿è¡ç¹æ®å¤çï¼å®ä¼åå¤çä»»æå¯¹è±¡é£æ ·å¤çæ°ç»ã
让æä»¬å顾ä¸ä¸è§åï¼
- ä»
å½ä¸¤ä¸ªå¯¹è±¡å¼ç¨çæ¯åä¸ä¸ªå¯¹è±¡æ¶ï¼å®ä»¬æç¸ç
==ã - 妿
==å·¦å³ä¸¤ä¸ªåæ°ä¹ä¸æä¸ä¸ªåæ°æ¯å¯¹è±¡ï¼å¦ä¸ä¸ªåæ°æ¯åå§ç±»åï¼é£ä¹è¯¥å¯¹è±¡å°ä¼è¢«è½¬æ¢ä¸ºåå§ç±»åï¼è½¬æ¢è§åå¦ å¯¹è±¡ ââ åå§å¼è½¬æ¢ ä¸ç« æè¿°ã - â¦â¦
nullåundefinedç¸ç==ï¼ä¸åèªä¸çäºä»»ä½å ¶ä»çå¼ã
ä¸¥æ ¼æ¯è¾ === æ´ç®åï¼å 为å®ä¸ä¼è¿è¡ç±»å转æ¢ã
æä»¥ï¼å¦ææä»¬ä½¿ç¨ == æ¥æ¯è¾æ°ç»ï¼é¤éæä»¬æ¯è¾çæ¯ä¸¤ä¸ªå¼ç¨å䏿°ç»çåéï¼å¦åå®ä»¬æ°¸è¿ä¸ç¸çã
ä¾å¦ï¼
alert( [] == [] ); // false
alert( [0] == [0] ); // false
仿æ¯ä¸è®²ï¼è¿äºæ°ç»æ¯ä¸åç对象ãæä»¥å®ä»¬ä¸ç¸çã== è¿ç®ç¬¦ä¸ä¼è¿è¡é项æ¯è¾ã
ä¸åå§ç±»åçæ¯è¾ä¹å¯è½ä¼äº§ççä¼¼å¾å¥æªçç»æï¼
alert( 0 == [] ); // true
alert('0' == [] ); // false
å¨è¿éç两个ä¾åä¸ï¼æä»¬å°åå§ç±»ååæ°ç»å¯¹è±¡è¿è¡æ¯è¾ãå æ¤ï¼æ°ç» [] 被转æ¢ä¸ºåå§ç±»å以è¿è¡æ¯è¾ï¼è¢«è½¬æ¢æäºä¸ä¸ªç©ºå符串 ''ã
ç¶åï¼æ¥ä¸æ¥çæ¯è¾å°±æ¯åå§ç±»åä¹é´çæ¯è¾ï¼å¦ ç±»åè½¬æ¢ ä¸ç« æè¿°ï¼
// å¨ [] 被转æ¢ä¸º '' å
alert( 0 == '' ); // trueï¼å 为 '' è¢«è½¬æ¢æäºæ°å 0
alert('0' == '' ); // falseï¼æ²¡æè¿ä¸æ¥çç±»å转æ¢ï¼æ¯ä¸åçå符串
é£ä¹ï¼æä»¬åºè¯¥å¦ä½å¯¹æ°ç»è¿è¡æ¯è¾å¢ï¼
å¾ç®åï¼ä¸è¦ä½¿ç¨ == è¿ç®ç¬¦ãèæ¯ï¼å¯ä»¥å¨å¾ªç¯ä¸æè
使ç¨ä¸ä¸ç« 䏿们å°ä»ç»çè¿ä»£æ¹æ³é项尿¯è¾å®ä»¬ã
æ»ç»
æ°ç»æ¯ä¸ç§ç¹æ®ç对象ï¼éç¨äºåå¨å管çæåºçæ°æ®é¡¹ã
声æï¼
// æ¹æ¬å· (常è§ç¨æ³)
let arr = [item1, item2...];
// new Array (æå
¶å°è§)
let arr = new Array(item1, item2...);
è°ç¨ new Array(number) ä¼å建ä¸ä¸ªç»å®é¿åº¦çæ°ç»ï¼ä½ä¸å«æä»»ä½é¡¹ã
length屿§æ¯æ°ç»çé¿åº¦ï¼åç¡®å°è¯´ï¼å®æ¯æ°ç»æåä¸ä¸ªæ°åç´¢å¼å¼å ä¸ãå®ç±æ°ç»æ¹æ³èªå¨è°æ´ã- 妿æä»¬æå¨ç¼©ç
lengthï¼é£ä¹æ°ç»å°±ä¼è¢«æªæã
è·åå ç´ ï¼
- ä½ å¯ä»¥éè¿å
ç´ çç´¢å¼è·åå
ç´ ï¼ä¾å¦
arr[0] - æä»¬ä¹å¯ä»¥ä½¿ç¨å
许è´ç´¢å¼ç
at(i)æ¹æ³ã对äºè´å¼çiï¼å®ä¼ä»æ°ç»çæ«å°¾å¾åæ°ã妿i >= 0ï¼å®ç工使¹å¼ä¸arr[i]ç¸åã
æä»¬å¯ä»¥éè¿ä¸åæä½ä»¥å端éåçæ¹å¼ä½¿ç¨æ°ç»ï¼
push(...items)卿«ç«¯æ·»åitems项ãpop()仿«ç«¯ç§»é¤å¹¶è¿å该å ç´ ãshift()ä»é¦ç«¯ç§»é¤å¹¶è¿å该å ç´ ãunshift(...items)ä»é¦ç«¯æ·»åitems项ã
éåæ°ç»çå ç´ ï¼
for (let i=0; i<arr.length; i++)â è¿è¡å¾æå¿«ï¼å¯å ¼å®¹æ§çæ¬æµè§å¨ãfor (let item of arr)â ç°ä»£è¯æ³ï¼åªè½è®¿é® itemsãfor (let i in arr)â æ°¸è¿ä¸è¦ç¨è¿ä¸ªã
æ¯è¾æ°ç»æ¶ï¼ä¸è¦ä½¿ç¨ == è¿ç®ç¬¦ï¼å½ç¶ä¹ä¸è¦ä½¿ç¨ > å < çè¿ç®ç¬¦ï¼ï¼å 为å®ä»¬ä¸ä¼å¯¹æ°ç»è¿è¡ç¹æ®å¤çãå®ä»¬é常ä¼åå¤çä»»æå¯¹è±¡é£æ ·å¤çæ°ç»ï¼è¿é叏䏿¯æä»¬æ³è¦çã
使¯ï¼æä»¬å¯ä»¥ä½¿ç¨ for..of å¾ªç¯æ¥é项æ¯è¾æ°ç»ã
å¨ä¸ä¸ç« æ°ç»æ¹æ³ ä¸ï¼æä»¬å°ç»§ç»å¦ä¹ æ°ç»ï¼å¦ä¹ æ´å¤æ·»å ãç§»é¤ãæåå ç´ åæ°ç»æåºçæ¹æ³ã
è¯è®º
<code>æ ç¾æå ¥åªæå 个è¯ç代ç ï¼æå ¥å¤è¡ä»£ç å¯ä»¥ä½¿ç¨<pre>æ ç¾ï¼å¯¹äºè¶ è¿ 10 è¡ç代ç ï¼å»ºè®®ä½ ä½¿ç¨æ²ç®±ï¼plnkrï¼JSBinï¼codepenâ¦ï¼