var a="aa"; function test(){ alert(a); a="bb"; } test(); alert(a); 求预解析

MenDax 93 2018-11-21 09:41:17
var a="aa";
function test(){
alert(a);
a="bb";
}
test();
alert(a);

求预解析过程
为什么输出结果为aa→bb
...全文
321 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wz_307 2018-11-21
  • 打赏
  • 举报
回复
1、var a = "aa" 即 window.a = "aa";作用于window全局之中。 2、function test(){}只是定义了函数过程,并没有真正执行函数。里面的alert(a)直到test()调用时才会执行。执行后,a被赋值为"bb" 3、执行完test()之后,a被赋值为"bb",所以执行alert后,显示"bb"
winzond 2018-11-21
  • 打赏
  • 举报
回复
var a="aa";                //1.声明变量a并赋值"aa"
function test(){
alert(a); //3.弹出变量a,此时a的值是"aa"
a="bb"; //4.修改变量a的值为"bb"
}
test(); //2.调用函数test
alert(a); //5.弹出变量a,此时a的值是"bb"

本例中变量a的作用域是全局变量,是widow对象的一个属性,函数可以访问并修改,所以调用test,a的值可以被改变

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧