扩展运算符(...)
扩展运算符(spread):是三个点(…)。主要用于函数调用/数组构造是,将数组表达式或者string在语法层面展开,但值得注意的是如果扩展运算符后面是一个空数组,则不产生任何效果,而且只有函数调用时,扩展运算符才可以放在圆括号中,否则会报Uncaught SyntaxError: Unexpected number
语法:
函数调用
1 | myFunction(...iterableObj); |
数组结构或字符串
1 | [...iterableObj, '4', ...'hello', 6]; |
进行克隆或者属性拷贝(原数组不受影响)
1 | var arr = [1, 2, 3]; |
放置表达式?
1 | const arr = [ |
扩展:
扩展运算符等价与apply的方式
1 | function myFunction(x, y, z) { } |
PS:使用new关键字调用构造函数时,不能直接使用数组+apply的方式(apply
执行的是调用 [[Call]]
, 而不是构造 [[Construct]]
)