Symbol.isConcatSpreadable
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2017ë 4ì.
Symbol.isConcatSpreadable ì ì ë°ì´í° ìì±ì ì ìë ¤ì§ ì¬ë³¼ @@isConcatSpreadableì ëíë
ëë¤.
Array.prototype.concat() ë©ìëë ì°ê²°ë ê° ê°ì²´ìì ì´ ì¬ë³¼ì ì°¾ì ì ì¬ ë°°ì´ê³¼ ê°ì²´ë¡ ì·¨ê¸íê³
í´ë¹ ë°°ì´ ììë¡ íííí´ì¼ íëì§ ì¬ë¶ë¥¼ ê²°ì í©ëë¤.
ìëí´ ë³´ê¸°
const alpha = ["a", "b", "c"];
const numeric = [1, 2, 3];
let alphaNumeric = alpha.concat(numeric);
console.log(alphaNumeric);
// Expected output: Array ["a", "b", "c", 1, 2, 3]
numeric[Symbol.isConcatSpreadable] = false;
alphaNumeric = alpha.concat(numeric);
console.log(alphaNumeric);
// Expected output: Array ["a", "b", "c", Array [1, 2, 3]]
ê°
ì ìë ¤ì§ ì¬ë³¼ @@isConcatSpreadable.
Property attributes of Symbol.isConcatSpreadable | |
|---|---|
| ì°ê¸° ê°ë¥ | ë¶ê°ë¥ |
| ì´ê±° ê°ë¥ | ë¶ê°ë¥ |
| ì¤ì ê°ë¥ | ë¶ê°ë¥ |
ì¤ëª
@@isConcatSpreadable ì¬ë³¼(Symbol.isConcatSpreadable)ì ìì²´ ëë ììë ìì±ì¼ë¡
ì ìí ì ìì¼ë©°, ê·¸ ê°ì ë¶ë¦¬ì¸ì
ëë¤. ìëì ê°ì´ ë°°ì´ ë° ë°°ì´ ì ì¬ ê°ì²´ì ëí ëìì ì ì´í ì ììµëë¤.
- ë°°ì´ ê°ì²´ì ê²½ì° ê¸°ë³¸ ëìì ìì를 í¼ì¹ë(íííê² íë) ê²ì
ëë¤.
Symbol.isConcatSpreadableì ì´ë¬í ê²½ì° ííí를 í¼í ì ììµëë¤. - ë°°ì´ê³¼ ì ì¬í ê°ì²´ì ê²½ì° ê¸°ë³¸ ëìì í¼ì¹ê±°ë íííê² íì§ ìë ê²ì
ëë¤.
Symbol.isConcatSpreadableì ì´ë¬í ê²½ì° ííí를 ê°ì í ì ììµëë¤.
ìì
>ë°°ì´
기본ì ì¼ë¡ Array.prototype.concat()ë ì¬ë¬ ë°°ì´ì íëì ê²°ê³¼ë¡ í¼ì¹©ëë¤(íííê² ë§ëëë¤).
const alpha = ["a", "b", "c"];
const numeric = [1, 2, 3];
const alphaNumeric = alpha.concat(numeric);
console.log(alphaNumeric); // ê²°ê³¼: ['a', 'b', 'c', 1, 2, 3]
Symbol.isConcatSpreadableì falseë¡ ì¤ì íë©´ 기본 ëìì ë¹íì±íí ì ììµëë¤.
const alpha = ["a", "b", "c"];
const numeric = [1, 2, 3];
numeric[Symbol.isConcatSpreadable] = false;
const alphaNumeric = alpha.concat(numeric);
console.log(alphaNumeric); // Result: ['a', 'b', 'c', [1, 2, 3] ]
ì ì¬ ë°°ì´ ê°ì²´
ì ì¬ ë°°ì´ ê°ì²´ììë 기본 ëìì´ íííìí¤ì§ ìë ê²ì
ëë¤.
ë°°ì´ì íííìí¤ê³ ì¶ë¤ë©´ Symbol.isConcatSpreadableì trueë¡ ì¤ì í íìê° ììµëë¤.
const x = [1, 2, 3];
const fakeArray = {
[Symbol.isConcatSpreadable]: true,
length: 2,
0: "hello",
1: "world",
};
x.concat(fakeArray); // [1, 2, 3, "hello", "world"]
ì°¸ê³ :
length ìì±ì ì¶ê°í ê°ì²´ ìì±ì ì를 ì ì´íë ë° ì¬ì©ë©ëë¤.
ìì ìì ìì length:2ë 2ê°ì ìì±ì´ ì¶ê°ëìë¤ë ê²ì ê°ë¦¬íµëë¤.
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-symbol.isconcatspreadable> |