JavaScript中Symbol.isConcatSpread的重要性是什么?

Symbol.isConcatSpread

此众所周知的符号用于配置在使用Array.prototype.concat()方法时是否应将对象展平为其数组元素。如果为假 ,则不对数组进行展平。默认情况下,Symbol.IsConcatSpread 为true。因此,除非且没有明确声明,否则不能避免数组的变平 。

无符号

示例

在以下示例中,未明确说明符号Symbol.IsConcatSpread。因此,默认情况下,数组将按照输出中所示的方式展平。

<html>

<body>

<script>

   var arr1 = ['mango', 'apple', 'guava'];

   var arr2 = ['cashew', 'pista', 'bhadham'];

   var res1 = arr1.concat(arr2);

   console.log(res1);

</script>

</body>

</html>

输出结果

["mango", "apple", "guava", "cashew", "pista", "bhadham"]


带符号

示例

在下面的示例中,显式声明了Symbol.IsConcatSpread符号,因此未如输出所示对数组进行展平。

<html>

<body>

<script>

   var arr1 = ['mango', 'apple', 'guava'];

   var arr2 = ['cashew', 'pista', 'bhadham'];

   arr2[Symbol.isConcatSpreadable] = false;

   var res2 = arr1.concat(arr2);

   console.log(res2);

</script>

</body>

</html>

输出结果

["mango", "apple", "guava", Array(3)]

以上是 JavaScript中Symbol.isConcatSpread的重要性是什么? 的全部内容, 来源链接: utcz.com/z/326762.html

回到顶部