Javascript中的“...”运算符[重复]
Posted
技术标签:
【中文标题】Javascript中的“...”运算符[重复]【英文标题】:"..." operator in Javascript [duplicate] 【发布时间】:2017-04-05 13:06:27 【问题描述】:我在javascript中找到了以下案例。我不明白 '...' 运算符在这里的意思。我在谷歌上搜索它,但我没有得到任何关于它的信息。这个运算符还有其他用途吗?有人可以帮帮我吗?
var x= [1,2,3];
var y = [4,5,6];
var z = [...x, ...y]; // z will be [1,2,3,4,5,6];
谢谢。
【问题讨论】:
...
运算符称为扩展运算符或扩展语法。请参阅MDN Page 了解它。
...
is not an operator!
@Felix Kling 如果不是操作员,那是什么?我问是因为它在 MDN 文档中的表达式和运算符下归档。
@Pineda:规范实际上为...
的大多数用例命名。例如。在这种情况下,我们谈论的是一个spread element,而当用于解构时,它是一个rest element。这也更清楚地表明...
在不同的上下文中做了不同的事情。请参阅我的第一条评论中的链接。基本上我想让人们明白...
不是它自己的东西,它是数组文字语法、解构语法、函数调用语法等的一部分。
@FelixKling 我们也可以简单地称它为 token,但“标点符号”很好 :-)
【参考方案1】:
我有一种思维方式,可以很容易地理解和记住“...”的工作原理。
var arr = [1,2,3] // this is arr which is the array
另一方面
...arr // this is whatever inside arr, which is 1,2,3
因此您也可以将其视为获取数组内部的内容。
请注意,...arr 本身不是有效的语法。你可以在 方法很多,我想到的其中两个是:
1 - 将数组中的内容传递给函数
var arr = [ 1,2,3 ]
var myFunc = function(a,b,c)
console.log(a,b,c)
myFunc(..arr) // logs 1 2 3
myFunc(1,2,3) // logs 1 2 3
2 - 获取数组内部的内容并在另一个数组中使用它们。
var arr = [ 1,2,3 ]
var foo = [ ...arr, 4,5,6 ] // now foo is [ 1,2,3,4,5,6 ]
【讨论】:
对象扩展语法在 ES7 中也不可用。 感谢您的指出。找不到太多关于它的内容并删除了有关它的部分。 但是...arr
本身并不意味着什么。 ...arr
有不同的含义,具体取决于它是否被使用,例如在数组文字内或在解构内。这就是为什么单独查看...
是没有意义的。
我的回答是否具有误导性?我想不出这种类比不起作用的场景@Felix Kling
在[foo, ...bar] = baz;
,...bar
意味着不同的东西。 ...arr
本身没有任何意义,这是一个语法错误。以上是关于Javascript中的“...”运算符[重复]的主要内容,如果未能解决你的问题,请参考以下文章
是啥 ?。运营商和我可以在哪里使用? JavaScript中的空值合并运算符[重复]
javascript (<) 中的小于运算符的工作方式小于或等于 [重复]