JavaScript の学習の一環として、学習している概念を示すコードを記述しようとしています。今日は巻き上げ変数を学んでいます。ここに私が書いたコードがあります:
console.log("A: My name is " + name);
function happy() {
console.log ("1: I am " + feeling);
var feeling = "happy";
console.log ("2: I am " + feeling);
}
happy();
var name = "Jim";
console.log("B: My name is " + name);
次の結果を期待しました。
A: My name is undefined
1: I am undefined
2: I am happy
B: My name is Jim
ただし、WriteCodeOnline.com および別のサンドボックスでコードをテストすると、最初の console.log が表示されますA: My name is
。それが違いを生む場合、私はChromeブラウザを使用しています。
ですから、私の質問は、関数内のホイストされたローカル変数が undefined を返すのに、ホイストされたグローバル変数が空白を返すのはなぜですか?