正文
对于粗心大意的初学者来说,可能会马上给出答案:b=3,又因为a=b,所以a=3;
正确的做法,应该是拆分出来:
b=3
var a=b;
需要注意的是这是在自执行函数里面的,所以a的声明只存在自执行函数里
而b由于自执行函数里没有声明,所以成为了全局变量
第三题
对于这道题,相信对很多小伙伴来说并不陌生,应该是见过许多遍了,但是人有粗心的伙伴会马上给出答案3个3,实际上答案是3个四,必须区分好结束循环时i的值时多少
若对这道题不清晰的或是想巩固这片知识的可以看这篇文章 :
做一名合格的前端开发工程师:Javascript加载执行问题探索
第四题
这道题重在考查 函数声明和普通变量声明的优先级关系,众所周知,函数声明的提升的优先级要高级普通变量 (如若这里有点不知所云,请看这篇文章:【JS】预编译(图解) )
因此正确答案为
把这道题变一下,
这样的话会是什么结果了?到这里还是不能给出答案的话,建议还是认真看下这篇文章:
对象篇
模块化编程-自研模块加载器