为了账号安全,请及时绑定邮箱和手机立即绑定

js语法问题

js语法问题

红颜莎娜 2018-08-10 09:10:23
var a = 5;function woot () {console.log((a == 5) + '1');var a = 6;function test () {    console.log((a == 6) + '2'); } test();};woot();求助大神这段代码的输出为什么是false1,为什么a的值是undefined.第一个输出语句。不知道是和浏览器的环境和node的环境有没有关系。
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

这个问题涉及js的一个重要的概念,变量提升
在作用域里声明的变量,变量的声明会提升到作用于的顶部,变量的赋值留在原地
在woot这个方法里,实际上js在解析时是这样的:

var a;console.log((a == 5) + '1');

a = 6;function test () {    console.log((a == 6) + '2');
}

test();


查看完整回答
反对 回复 2018-09-24
  • 1 回答
  • 0 关注
  • 598 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信