function test(){
alert(a);
var a = 10;
}
test();
运行结果是 Undefined 。这与书上写的 “函数中的任何位置定义的变量在该函数中的任何地方都可见(《javascript语言精粹》第36页)” 似乎是矛盾的。想请教各位,我可能在什么地方理解有误。
function test(){
alert(a);
var a = 10;
}
test();
运行结果是 Undefined 。这与书上写的 “函数中的任何位置定义的变量在该函数中的任何地方都可见(《javascript语言精粹》第36页)” 似乎是矛盾的。想请教各位,我可能在什么地方理解有误。
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
不矛盾的,JavaScript会加载或者说是解析两次
第一次:解析加载变量声明,函数声明,对函数的参数赋值
第二次:给变量赋值,执行函数
因为js是顺序加载,即从上到下,所以在函数中,的加载顺序是这样的:
总结: