私の知る限りを掲揚変数を評価していない場合は、なぜ、変数の宣言は、次のコードでは、彼らはしかし、定義されている文脈で掲揚され、taken from hereJavascriptを:ステートメントが関数に
var foo = 1;
function bar() {
if (!foo) {
var foo = 10;
}
alert(foo);
}
bar();
if(!foo)
はtrue
と評価されたがどうして?私はそのためif(!foo)
つまりif(false)
に、if(!true)
にさらに解決さを解決する必要があり、既にif(!foo)
前var foo = 10
がfooのコンテキストで評価され、この文から存在var foo
意味ブロックが実行けどif (!foo)
が真と評価すべきではない場合、したがって、ブロックが実行された場合内のコードと警告10
なぜ誰かが、なぜ重要なのか、どのようにif条件が評価されるか教えてください。
私は混乱しています – Mahi
リンク先の記事をすばやくスキップすると、そこに説明されています.. – ambs