javascript ecmascriptに準拠したlvaluesとしての配列はありますか?
-
11-09-2019 - |
質問
Firefox 3.5.3(少なくとも)により、次のようなコードを書くことができます。
var array = [4, 5, 6];
var foo, bar, baz;
[foo, bar, baz] = array;
その時点で
foo => 4
bar => 5
baz => 6
これは、コードの明確さに非常に役立ちます。
それはecmascriptに準拠していると考えられていますか?仕様には何も表示されませんでしたが、jslintはエラーを返します。
解決
いいえ、それはJavaScript1.7で導入された機能です 割り当ての破壊. 。 JavaScriptはECMAScriptではありません。 ECMAScriptは、いくつかのJavaScript機能の試みられた標準化です。 JavaScriptエンジンは2つしかありません:(スパイダー|トレース|アクション)モンキーとサイ。他のすべてのエンジンは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