私には、JavaScriptのドキュメントを参照してvar hoisting
私が見つけたセクションであり、いくつかの変数の初期化をして例の下に与えられました。
var x = 0;
function f(){
var x = y = 1;
}
f();
console.log(x, y); // outputs 0, 1
// x is the global one as expected
// y leaked outside of the function, though!
として例外を取得すると仮定しますUncaught Reference Error: y is not defined
。ただし、スコープがリークしているため発生しておらず、表示されてい0,1
ます。
なぜそれが詳細に起こっているのか、そして何がこれを起こしたのかを知ることができますか?最後に、パフォーマンス関連の問題はありますか?
あなたは宣言していませんy
。
var x = y = 1;
と同等です
y = 1;
var x = y; // actually, the right part is precisely the result of the assignement
宣言されていない変数はグローバル変数です(あなたがでない限りstrictモード、それは誤りです)。
あなたが言及している例がありました、異なっていたカンマ、複数の宣言構文の一部ですが。
あなたはであなたのコードを修正することができます
var y=1, x=y;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加