这道题结果为啥是C啊

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

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

1回答
好帮手慕然然 2021-09-06 16:46:59

同学你好,在这段代码中,只定义了一个全局变量name,所以在函数fn中访问的是全局变量name。

当调用函数fn时,代码 name = 'xh' 会将全局变量name重新赋值为“xh”, 此时函数中的document.write(name)输出结果为“xh”。

而函数外的document.write(name)语句是在函数fn调用之后执行的,此时name已被重新赋值为“xh”,所以输出结果也为“xh”,如图

https://img1.sycdn.imooc.com//climg/6135d52d09e3066408460421.jpg

祝学习愉快!

  • 提问者 球球不一般 #1

    var name='xm'不是全局变量啊

    2021-09-07 15:15:14
  • 提问者 球球不一般 #2

    而函数外的document.write(name)语句是在函数fn调用之后执行的,此时name已被重新赋值为“xh”,所以输出结果也为“xh”,这个语句不明白输出的结果为啥不是xm啊

    2021-09-07 15:16:53
  • 好帮手慕然然 回复 提问者 球球不一般 #3

    同学你好,var name='xm' 语句位于全局作用域中,所以是在全局作用域中声明变量,因此name是全局变量。

    在最后一个document.write(name)语句执行之前,是fn函数先执行的【函数名()表示执行函数】,fn函数执行时,将name重新赋值为了“xh”,此时name的值不再是“xm”,如图

    https://img1.sycdn.imooc.com//climg/61371c9d09bf921909700522.jpg

    祝学习愉快!

    2021-09-07 16:05:41
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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