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

js变量问题

js变量问题

慕森卡 2019-01-31 17:14:18
分两个问题:1.while相当于是一个块级作用域。在块级作用域中定义的变量name是一个全局变量。所以输出的是obama。是这样理解的吗?2.之前定义的一个变量name='zach'。 之后在while中定义的name是把之前定义的name的覆盖掉了吗?还是说 ,只是把新的值 ‘obama’ 指向之前的name呢?求解惑更新:关于第二个问题,有点蒙蔽,有的说是替代了,有的说是更新name的值....我到底该如何抉择
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

1.while不是块级作用域,for也不算。JS的常用的块级作用域是函数,不常见的还有with/catch等。所以你可以默认JS除函数外是没有块级作用域的


2.引擎在执行var name='obama'这里时,会查找有无name定义,如果有定义就直接赋值。因此答案是指向之前的name


===================

第二个问题是更新,这与引擎的处理方式有关。


对于说替代的答案,你们想过变量提升吗?


等效代码:


var name; 

var name;

name = 'zach'

name = 'obama'

告诉我这怎么替代?


查看完整回答
反对 回复 2019-02-01
  • 1 回答
  • 0 关注
  • 472 浏览
慕课专栏
更多

添加回答

举报

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