JavaScript での変数ホイストについて学んでいますが、この動作が奇妙であることがわかりました。
var x = 0;
(function () {
//Variable declaration from the if statement is hoisted:
//var x; //undefined
console.log(x); //undefined
if (x === undefined) {
var x = 1; //This statement jumps to the top of the function in form of a variable declaration, and makes the condition become true.
}
}());
この場合、ステートメントは条件を真にして実行できるというのは正しいですか?