jsfiddleの私の使い方と私の使い方のように見えますか?JavaScriptホイストを完全に理解しようとしています
最近、吊り上げに関する記事が2つあります.1つはby Nicholas Zakas、もう1つはby Ben Cherryです。代わりにundefined
そのログ1
を伐採、
if (!('a' in window)) {
var a = 1;
}
console.log(a);
を、私は完全にそれを把握することを確認するために私自身の例とちょうどテストを追跡しようとしているが、イムは、この例で主に問題を持つ
イム。すべてが正しく理解されている場合、はとなるはずです。これは、varステートメントが上部に持ち上げられているため、ウィンドウスコープにはが存在するはずなので、値を割り当てるべきではありません。
(function bar(){
console.log(foo);
var foo = 10;
console.log(baz);
})();
foo
しかし、予想通り、以下が機能しているが、undefined
あり、そしてbaz
が定義されていません。私は両方の例でfiddleをここに持っています。本当にこの周りに私の頭を包み込むことを試みるだけです。これらの記事が多分書かれて以来、何か変わったのですか?誰かがこれにいくつかの光を当てることができればそれは認められるだろう。私はテスト時にChrome 14を使用しています。
私はGoogle Chromeであなたのフィドルを実行していることだし、それは 'undefined'を印刷します: 、それが宣言された後VARSをexcute巻き上げ避けてください。ホイストの良い説明については、* O'Reilly JavaScript Patterns *をご覧ください。 専用の**段落**があります。 – user278064
ええ、明らかに私はjsfiddleを正しく使っていないためにdohでした。 – Loktar