全局变量 变undefined,JS定义先后顺序谁帮忙理一下?
var a = 3;
function box(){
console.log(a);
var a = 5;
}
box();
输出:undefined 3
这个很不理解。。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
var a = 3;
function box(){
console.log(a);
var a = 5;
}
box();
输出:undefined 3
这个很不理解。。。。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
Javascript在执行前会对整个脚本文件的声明部分做完整分析(包括局部变量),从而确定实变量的作用域
function里面的var a执行前就有了,但是没赋值,所以就undefined了
这样就能调到全局的了
var a = 3;
function box(){
}
box();
JavaScript中的变量提升(Hoisting)。在JS中,就是把定义在后面的东东(变量或函数)提升到前面中定义。 要是还不明白的话你百度一下“变量提升”会对你有帮助。