今天看书无意中发现一个例子,然后突然进行了改造。
原始例子
var foo=0;
console.log(foo);
var myfunction=function(){
var foo=1;
console.log(foo);
var myNextFunction=function(){
var foo=2;
console.log(foo);
}();
}();输出0,1,2
改造后的例子
var foo=0;
console.log(foo);
var myfunction=function(){
var myNextFunction=function(){
var foo=2;
console.log(foo);
}();
console.log(foo);
var foo=1;
console.log(foo);
}();输出0,2,undefined,1哦,果真javascript里面的变量声明和定义是讲顺序的,运行到第三个console.log发生undefined,是因为函数内已经将foo的空间声明,却没定义。
本文通过一个JavaScript实例展示了变量声明和定义的顺序影响,解释了为何在函数内部使用未初始化的变量会导致undefined结果。
1082

被折叠的 条评论
为什么被折叠?



