【第9周 02 JS测试卷】12题:变量作用域的问题

【第9周 02 JS测试卷】12题:变量作用域的问题

问题描述:

这里username='小慕'.  没有var向上作用域查找变量,不应该就是'小鱼'?   

是重新赋值之后变成的'小慕'吗?

相关截图:

https://img1.sycdn.imooc.com//climg/61b59eb309d8e5c328921536.jpg



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕然然 2021-12-12 15:15:32

同学你好,是重新赋值之后变成的'小慕',在函数funcname中,username='小慕' 这句代码没有使用var定义username变量,所以会向上一级查找同名变量,然后查找到var username='小鱼',因此funcname函数中的username是在此处定义并赋值为'小鱼',而后面调用funcname函数后,又将username重新赋值为了'小慕'。

祝学习愉快!

  • 提问者 easyschen #1

    之前有个相关的知识点:如果变量前面没有var,该变量就是全局变量。   

    在这里不适用吧。

    麻烦请教下然然老师


    2021-12-12 15:52:54
  • 好帮手慕然然 回复 提问者 easyschen #2

    同学你好,在这里确实不太适用,因为这段代码中定义的username都是同名变量,如果存在同名变量,那么就要一层层向上查找使用var定义的同名变量。如果不存在同名变量,那么不使用var定义的变量就是一个全局变量。

    祝学习愉快!

    2021-12-12 16:00:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师