试图完全理解JavaScript提升

前端之家收集整理的这篇文章主要介绍了试图完全理解JavaScript提升前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

编辑
看起来这是我的问题和我对jsfiddle的使用:?

我最近读了几篇关于吊装的文章,一篇是by Nicholas Zakas,另一篇是by Ben Cherry.

我试着按照这些例子,只是自己测试,以确保我完全掌握它,但我主要是这个例子,

if (!('a' in window)) {
    var a = 1;
}
console.log(a);

而不是记录未定义其日志记录1.如果我正确理解所有内容,则应该未定义,因为它应该存在于窗口范围内,因为var语句被提升到顶部,因此不应该为其分配值.

但以下是按预期行事,

(function bar(){
    console.log(foo);
    var foo = 10;  
    console.log(baz);
})();

foo未定义,并且未定义baz.这里有一个fiddle和两个例子.真的只是想绕过这个.这些文章写的可能会有变化吗?如果有人能对此有所了解,我们将不胜感激.我在测试时使用的是Chrome 14.

最佳答案
将小提琴中的包裹改为无包裹(头部)

http://jsfiddle.net/rlemon/VjCqF/3/

猜你在找的JavaScript相关文章