Javascript 无法在控制台上记录带有扩展运算符参数的字符串

Javascript 无法在控制台上记录带有扩展运算符参数的字符串,javascript,ecmascript-6,Javascript,Ecmascript 6,我是ES6的新手。我试图在控制台上记录一个连接字符串(字符串+扩展参数)。但是,我无法连接它。以下是代码行: var arr1=[1,2,3,4,5]; var arr2=[6,7,8,9,10]; //线下 log(“扩展数组iterable:+…arr1”) 第1天:排列操作员 您可以将数组作为console.log的参数 console.log是一个函数,它接受参数并将它们放在一行中,以空格分隔 这里,第一个值是字符串,下面的所有参数都是数组的元素..接受一个参数,并将元素转换为参数

我是ES6的新手。我试图在控制台上记录一个连接字符串(字符串+扩展参数)。但是,我无法连接它。以下是代码行:

var arr1=[1,2,3,4,5];
var arr2=[6,7,8,9,10];
//线下
log(“扩展数组iterable:+…arr1”)

第1天:排列操作员
您可以将数组作为
console.log
的参数

console.log
是一个函数,它接受参数并将它们放在一行中,以空格分隔

这里,第一个值是字符串,下面的所有参数都是数组的元素
..
接受一个参数,并将元素转换为参数

var arr1=[1,2,3,4,5];

log(“扩展数组iterable:,…arr1”)扩展运算符仅在数组中工作
[…arr1]

当你试着去做

console.log("Spreading an array iterable: " + ...arr1);
+
运算符定义字符串上下文。在字符串上下文中,扩展运算符不起作用。这是一个语法错误。您需要在数组文本
[]
或类似Nina的答案中使用扩展运算符作为函数参数(或在对象文本中,但此处不适用)

那就排队吧

console.log("Spreading an array iterable: " + [...arr1]);
+
运算符还建立了字符串上下文,但现在扩展运算符位于数组文本中。这强制数组的方法

请参阅MDN文档

var arr1=[1,2,3,4,5];
var arr2=[6,7,8,9,10];
//线下
log(“扩展数组iterable:+[…arr1]);
log(“扩展数组iterable:+[…arr1,…arr2])

第1天:排列操作员

这与扩展数组iterable:+arr1
有何不同?@adiga请参阅我在answer@yunzen文档没有解释扩展数组iterable:+arr1
和扩展数组iterable:+[…arr1]
@adiga之间的区别,或者参见Nina的回答没有区别(只是打印字符串和数字的区别),只是试图理解扩展运算符。为什么它不起作用?谢谢它起作用了。但是你能解释一下它是如何使用(逗号符号)而不是+(串联符号)?@MdFarzan with
arr=[1,2,3]
console.log(…arr)
相当于
console.log(1,2,3)
。扩展语法将导致调用
console.log
,数组的每个成员都作为参数。
console.log(“扩展数组iterable:,…arr1”);
仅表示
console.log(“扩展数组iterable:,1,2,3,4,5”)
或“打印
”扩展数组iterable:“
1
,和
2
,和
3
,和
4
,和
5
”如果要将数组元素与字符串连接起来,只需执行-->
扩展数组iterable:+arr1
。数组在连接之前将转换为字符串。它不是运算符。您不能在任何地方使用此语法。它是数组文字、对象文字和函数定义的一部分。