javascript変数のアップグレードを迅速に理解する
544 ワード
まず簡単な例を見ます.
var a='Hello World';
(function(){
console.log(a);
})()
その結果、ハローワールドの他の例が印刷されました.var a='Hello World';
(function(){
console.log(a);
var a = "good morning!";
})()
結果はちょっと意外です.プリントしたのはundefinedです.なぜですか?上のコードの等価変換を見てください.var a='Hello World';
(function(){
var a;
console.log(a);
a = "good morning!";
})()
ここでは関数スコープで変数宣言(var a)が向上しましたが、初期化(a=「good moning!」)は向上しませんので、a変数は未定義の変数です.要約すると、一つのスコープの中で、声明が昇格され、賦値が上昇しません.