微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

试图完全理解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/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐