一. Javascript的作用域,大坑! 1. JS作用域奇怪表现之一:预编译 在其他的语言里我们如果使用一个变量在声明其之前,是会报错的,但是在js里面却不一定,比如: function f1() { console.log(aaa); var aaa = 1; } f1(); 这里解释器就不会报错,而是会输出一个undefined出来,也就是声明了但是没有初始化赋值的效果.原有在于js的解释器从上到下执行,到f1这里的时候虽然不会执行,但是已经把函数放到内存里了,顺便aaa也在内存里了(相…