編集 それは私の側の問題であり、私のjsfiddleの使用法だったようです:?
最近ホイストに関する記事をいくつか読んでいます。1 つはNicholas Zakas によるもので、もう 1 つはBen Cherry によるものです。
私は例に従って、自分でテストして完全に理解していることを確認しようとしていますが、主にこの例に問題があります。
if (!('a' in window)) {
var a = 1;
}
console.log(a);
undefined
そのログを記録する代わりに1
。私がすべてを正しく理解している場合は、 var ステートメントが一番上に持ち上げられているため、ウィンドウスコープに存在する必要a
がundefined
あるため、値を割り当てる必要はありません。
しかし、以下は期待どおりに動作しています。
(function bar(){
console.log(foo);
var foo = 10;
console.log(baz);
})();
foo
でありundefined
、baz
定義されていません。両方の例でここにフィドルがあります。本当にこれについて頭を包み込もうとしているだけです。これらの記事を書いてから、何か変わったことはありますか? 誰かがこれに光を当てることができれば、それはありがたいです. テスト時にChrome 14を使用しています。