写程序时,无论是变量还是函数,我们都是先声明后使用,其实也应该是这样来写。
但有时候我们将两者的顺序颠倒了,先使用了变量或先调用了函数,再来声明变量或函数,发现竟然也没报错。
其实这也是因为JavaScript在执行代码之前,已经将变量声明和函数声明都放到内存中了,到了执行阶段程序就可以从内存中读取变量和函数的定义了。
1 | num = 6; |
1 | func("hello"); |
需要注意的一点是:JavaScript只提升声明,不提升初始化。1
2
3var x = 1;
console.log(x, y); // 这里y是undefined,因为下面的y不仅仅是声明,是声明并初始化
var y = 2;