是数组中的JavaScript左值的ECMAScript兼容的?
-
11-09-2019 - |
题
火狐3.5.3(至少)让我写像代码:
var array = [4, 5, 6];
var foo, bar, baz;
[foo, bar, baz] = array;
在该点
foo => 4
bar => 5
baz => 6
其可以是码清晰度非常有用。
被认为是符合ECMAScript的是什么?我没有看到在规范什么,但JSLint的返回一个错误。
解决方案
没有,那是在JavaScript 1.7引入了一个功能叫做解构赋值。 JavaScript是不是ECMAScript的。 ECMAScript是一些JavaScript特性的尝试标准化。只有两个JavaScript引擎:(蜘蛛|跟踪|动作),猴和犀牛。每隔一个发动机是ECMAScript的发动机。
下面是一些例子:
var {a, b} = {b:2, a:1}; // a === 1, b === 2
var [c, d] = [3, 4]; // c === 3, d === 4
var {x: e} = {x: 5}; // e === 5
function f({a, b: c}, [d, e]) {
// same as: var [{a, b: c}, [d, e]] = arguments
}
歌剧部分实现了一些解构赋值。它不支持的对象或函数的参数,但它支持您简单的例子。
不隶属于 StackOverflow