摘要: 这篇文章是对基础的复习,有这样一道面试题var a = 10;(function () { console.log(a); var a = 20;})()短短 5 行代码console.log(a)的结果是什么?如果把var a = 20;和console.log(a)语句顺序对调呢?这道题目的答案是undefined。不是 10。关键在于 javascript 的变量声明有一个 hoisting 机制,变量声明永远都会被提升至作用域的最顶端(注意测试还只是声明,还没有赋值)。其实上面的语句相当于:var a = 10;(function () { var a; // 在这... 阅读全文
posted @ 2013-12-22 11:30 北川 阅读(257) 评论(0) 推荐(0) 编辑