火狐3.5.3(至少)讓我寫類似的代碼:在符合ECMAScript的JavaScript中是否將數組作爲左值?
var array = [4, 5, 6];
var foo, bar, baz;
[foo, bar, baz] = array;
此時
foo => 4
bar => 5
baz => 6
這對於代碼的清晰性非常有幫助。
這是否被認爲符合ECMAScript?規範中沒有看到任何內容,但JSLint返回錯誤。
火狐3.5.3(至少)讓我寫類似的代碼:在符合ECMAScript的JavaScript中是否將數組作爲左值?
var array = [4, 5, 6];
var foo, bar, baz;
[foo, bar, baz] = array;
此時
foo => 4
bar => 5
baz => 6
這對於代碼的清晰性非常有幫助。
這是否被認爲符合ECMAScript?規範中沒有看到任何內容,但JSLint返回錯誤。
不,這是JavaScript 1.7中引入的一項功能,稱爲destructuring assignment。 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
}
歌劇院部分實現了一些解構賦值。它不支持它的對象或函數參數,但它確實支持你的簡單例子。
啊。我認爲這將是一個更新的功能。由於1.7還沒有完全支持,猜測我必須堅持更詳細的選項。謝謝! – 2009-10-31 16:23:56
最新評論,但我正在尋找主題。解構賦值是爲現在報廢的ECMAScript第4版計劃的一項功能。這是有點傷心,它沒有成爲ECMAScript 5 – 2010-02-24 20:59:47
它看起來像它在ecmascript表:和諧http://wiki.ecmascript.org/doku.php?id=harmony:destructuring – 2010-10-19 20:33:22
我不知道這是否合乎邏輯...似乎不合邏輯的LHS部分等等部分 – mauris 2009-10-31 16:04:31