疑問が生じたとき、私はJSでvarsを宣言することを考えていました。2つの変数の値を同時に設定することの優先順位は何ですか?見る:
var a = 1,
b = 1;
このコードでa
は、の前に宣言されていb
ます。しかし、このコードはどうですか
var a = b = 1;
どちらが最初に値を受け取りますか?a
またはb
?
疑問が生じたとき、私はJSでvarsを宣言することを考えていました。2つの変数の値を同時に設定することの優先順位は何ですか?見る:
var a = 1,
b = 1;
このコードでa
は、の前に宣言されていb
ます。しかし、このコードはどうですか
var a = b = 1;
どちらが最初に値を受け取りますか?a
またはb
?
それは次のように評価されます
var a = (b = 1);
したがって、b
最初に値を取得します。
これは最初のスニペットとは異なることに注意してください。まだグローバルスコープにない場合はb
、グローバル変数になります(以前に宣言されていない場合)。これにより、厳密モードでエラーが発生します。
正式な説明は仕様書に記載されています。