Javascript JS数组破坏-它是如何给出这个输出的?
代码的输出:Javascript JS数组破坏-它是如何给出这个输出的?,javascript,ecmascript-6,destructuring,Javascript,Ecmascript 6,Destructuring,代码的输出: const arr = [1, 2, 3, 4, 5]; console.log([...arr + []]); 给予 我知道…arr将返回数组项(如1 2 3 4 5)和number+[]给出字符串,但我真的搞不清楚为什么,被添加到输出数组中 是因为console.log() 结果是输出相同的[…”1,2,3,4,5”+[]] 还是我不知道的神奇解释?是关于应用于数组的+运算符的解释。那么发生的情况是: arr+[]为您提供一个字符串“1,2,3,4,5” 然后该字符串被扩展/
const arr = [1, 2, 3, 4, 5];
console.log([...arr + []]);
给予
我知道…arr
将返回数组项(如1 2 3 4 5)和number+[]
给出字符串,但我真的搞不清楚为什么,
被添加到输出数组中
是因为console.log()
结果是输出相同的[…”1,2,3,4,5”+[]]
还是我不知道的神奇解释?是关于应用于数组的+
运算符的解释。那么发生的情况是:
arr+[]
为您提供一个字符串“1,2,3,4,5”
+
运算符的说明。那么发生的情况是:
arr+[]
为您提供一个字符串“1,2,3,4,5”
当你这样做的时候,再加上Nurbol的答案
const arr=[1,2,3,4,5];
log([…arr+[])代码>添加Nurbol的答案时
const arr=[1,2,3,4,5];
log([…arr+[])
array.toString()
在每个元素后添加,
const a = [1, 2, 3, 4, 5]
console.log(a.toString())
// -> '1,2,3,4,5'
console.log([...a.toString()])
// -> [ '1', ',', '2', ',', '3', ',', '4', ',', '5' ]
[…aray+[]]
将数组转换为字符串,然后添加空字符串,然后使用[…resultString]
生成结果数组。toString()
在每个元素后添加,
const a = [1, 2, 3, 4, 5]
console.log(a.toString())
// -> '1,2,3,4,5'
console.log([...a.toString()])
// -> [ '1', ',', '2', ',', '3', ',', '4', ',', '5' ]
[…aray+[]]
将数组转换为字符串,然后添加空字符串,然后使用[…resultString]
生成结果,因为arr+[]==“1,2,3,4,5”
(这里没有解构)@CertainPerformance您的意思是-这里没有数组解构
。根本没有解构(数组或其他)噢,谢谢你清除了它。“我知道,…arr
将返回数组项”,它不返回。…
不是运算符,它什么都不做。…arr
本身将与:arr
一样无效。…
是数组文字语法的一部分(以及函数定义/调用语法和析构函数语法)并具有不同的含义,具体取决于它的使用位置。就像;
在循环头的内部和语句末尾的意思不同。请参阅,因为arr+[]==“1,2,3,4,5”
(这里没有析构函数)@当然性能你的意思是-这里没有数组解构
。根本没有解构(数组或其他)哦,谢谢你清除它。“我知道…arr
会返回数组项”它不是。..
不是运算符,它什么也不做。..arr
本身与:arr
一样无效。..
是数组文字语法(函数定义/调用语法和析构函数语法)的一部分根据使用位置的不同,它有不同的含义。就像;
在循环头和语句结尾的中有不同的含义。请参见。因此,它的行为基本上类似于控制台.log([…(arr+[]));
。Thanks@PrameshBajracharya没错。换句话说,+
运算符在这里具有更高的优先级。@Nurbollypysbayev:..
不是运算符。是数组文字语法的一部分,就像,
一样。@FelixKling所以这是一个常见的误解?用谷歌搜索“扩展运算符”提供了大量的链接。但是developer.mozilla.org没有提到它。不幸的是,是的。在开始时,MDN在操作符下列出了这种语法。请参见tooOh。因此,它的行为基本上类似于console.log([…(arr+[]));
。Thanks@PrameshBajracharya没错。换句话说,+
运算符在这里具有更高的优先级。@Nurbollypysbayev:..
不是运算符。是数组文字语法的一部分,就像,
一样。@FelixKling所以这是一个常见的误解?用谷歌搜索“扩展运算符”提供了大量的链接。但是developer.mozilla.org没有提到它。不幸的是,是的。在开始时,MDN在操作符下列出了这种语法。参见