请问详细的执行流程/数据传递是怎样的? 好像与作用域、变量声明提升有关
//js 例1 :
var a=1;
(function test(){
alert(a);
var a =2;
alert(a);
})()
alert()的第一次调用时显示“undefined”,第二次调用时显示“2”。
//js 例2 :
var a=1;
(function test(){
alert(a);
})()
alert()的第一次调用时显示“1”,
请问详细的执行流程/数据传递是怎样的? 好像与作用域、变量声明提升有关
//js 例1 :
var a=1;
(function test(){
alert(a);
var a =2;
alert(a);
})()
alert()的第一次调用时显示“undefined”,第二次调用时显示“2”。
//js 例2 :
var a=1;
(function test(){
alert(a);
})()
alert()的第一次调用时显示“1”,
变量作用域
code1中test里面有a,所以不会读取外部的变量,当你第一次使用a的时候还未定义,所以是undefined
code2没有a,使用上级作用域中的a,所以是1
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答939 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
变量提升。例1与下列代码等效。