摘要: 只要是写过点JS代码,很简单一个var 就完事了。那对于JS编译器背后它又发生了什么呢?那就一步步通过代码来讲起。x = 1;alert(x);var y = function() {alert(x); var x = 2;alert(x); }y(); 上面的代码也许你答对了它会分别输出:1,undefined,2。对于我来说,第一反应它会输出:1,1,2。为什么第二个会输出undefined?在上面我明确定义了一个全局变量x,为何找不到? 那是因为:js编译器在执行这个y函数的时候,会把把它body里面的声明变量提前到最前面进行声明。比如:var x=2; 编译器先会在body最前面进行v 阅读全文
posted @ 2012-12-28 12:42 娃哈哈ABC 阅读(2130) 评论(9) 推荐(3) 编辑