Array.prototype.join()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
join() æ¹æ³å°ä¸ä¸ªæ°ç»ï¼æä¸ä¸ªç±»æ°ç»å¯¹è±¡ï¼çææå
ç´ è¿æ¥æä¸ä¸ªå符串并è¿åè¿ä¸ªå符串ï¼ç¨éå·ææå®çåé符å符串åéã妿æ°ç»åªæä¸ä¸ªå
ç´ ï¼é£ä¹å°è¿å该å
ç´ èä¸ä½¿ç¨åé符ã
å°è¯ä¸ä¸
const elements = ["Fire", "Air", "Water"];
console.log(elements.join());
// Expected output: "Fire,Air,Water"
console.log(elements.join(""));
// Expected output: "FireAirWater"
console.log(elements.join("-"));
// Expected output: "Fire-Air-Water"
è¯æ³
join()
join(separator)
åæ°
separatorå¯é-
æå®ä¸ä¸ªå符串æ¥åéæ°ç»çæ¯ä¸ªå ç´ ã妿éè¦ï¼å°åé符转æ¢ä¸ºå符串ã妿çç¥ï¼æ°ç»å ç´ ç¨éå·ï¼
,ï¼åéã妿separatoræ¯ç©ºå符串ï¼""ï¼ï¼åææå ç´ ä¹é´é½æ²¡æä»»ä½å符ã
è¿åå¼
ä¸ä¸ªæææ°ç»å
ç´ è¿æ¥çå符串ã妿 arr.length 为 0ï¼åè¿å空å符串ã
æè¿°
æææ°ç»å
ç´ è¢«è½¬æ¢æåç¬¦ä¸²å¹¶è¿æ¥å°ä¸ä¸ªå符串ä¸ã妿ä¸ä¸ªå
ç´ æ¯ undefined æ nullï¼å®å°è¢«è½¬æ¢ä¸ºç©ºå符串ï¼è䏿¯å符串 "undefined" æ "null"ã
Array.prototype.toString() ä¼å¨å
é¨è®¿é® join æ¹æ³ï¼ä¸å¸¦åæ°ãè¦çä¸ä¸ªæ°ç»å®ä¾ç join ä¹å°è¦çå®ç toString è¡ä¸ºã
å½å¨ç¨çæ°ç»ä¸ä½¿ç¨æ¶ï¼join() æ¹æ³è¿ä»£ç©ºæ§½ï¼å°±åå®ä»¬çå¼ä¸º undefined 䏿 ·ã
join() æ¹æ³æ¯éç¨çãå®åªææ this å¼å
·æ length 屿§åæ´æ°é®å±æ§ã
示ä¾
>使ç¨ç¨åç§ä¸åçæ¹å¼è¿æ¥æ°ç»
ä¸é¢ç示ä¾å建ä¸ä¸ªæ°ç» aï¼å
¶ä¸å
å«ä¸ä¸ªå
ç´ ï¼ç¶åç¨åç§ä¸åçåéç¬¦è¿æ¥æææ°ç»å
ç´ ãé¦å
æ¯é»è®¤çåé符éå·ï¼ç¶åæ¯ä¸ä¸ªéå·å ç©ºæ ¼ï¼æ¥ä¸æ¥æ¯ä¸ä¸ªå å·ååå ç©ºæ ¼ï¼æåæ¯ä¸ä¸ªç©ºå符串ã
const a = ["Wind", "Water", "Fire"];
a.join(); // 'Wind,Water,Fire'
a.join(", "); // 'Wind, Water, Fire'
a.join(" + "); // 'Wind + Water + Fire'
a.join(""); // 'WindWaterFire'
å¨ç¨çæ°ç»ä¸ä½¿ç¨ join()
join() å°ç©ºæ§½è§ä¸º undefinedï¼å¹¶äº§çé¢å¤çåé符ï¼
console.log([1, , 3].join()); // '1,,3'
console.log([1, undefined, 3].join()); // '1,,3'
å¨éæ°ç»å¯¹è±¡ä¸è°ç¨ join()
join() æ¹æ³è¯»å this ç length 屿§ï¼ç¶åè®¿é®æ¯ä¸ªæ´æ°ç´¢å¼ã
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
};
console.log(Array.prototype.join.call(arrayLike));
// 2,3,4
console.log(Array.prototype.join.call(arrayLike, "."));
// 2.3.4
è§è
| Specification |
|---|
| ECMAScript® 2027 Language Specification > # sec-array.prototype.join > |