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変数は未定義の変数です.要約すると、一つのスコープの中で、声明が昇格され、賦値が上昇しません.