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

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 关注
  • 626 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号