老师,这里的代码为什么不算局部变量呢?出了作用域还是可以打印

老师,这里的代码为什么不算局部变量呢?出了作用域还是可以打印

而且这个函数我没有调用,并没有出错是什么原因?

http://img1.sycdn.imooc.com//climg/5c09e50800014f3a09320778.jpg

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

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

2回答
好帮手慕星星 2018-12-07 14:26:53

老师在第一次回答的时候已经说过了如果输出name结果是什么,也解释了为什么是空:

http://img1.sycdn.imooc.com//climg/5c0a12610001115e07840304.jpg

window下有name属性为空,虽然代码全局中没有定义name,但是window中有,所以输出的是window的name值为空。

好帮手慕星星 2018-12-07 11:34:14

在fn函数中的name是局部变量,不管fn函数有没有调用,结果都不可能是3。如果输出name,结果是空,因为window下有name属性为空:

http://img1.sycdn.imooc.com//climg/5c09ea190001d23e02020069.jpg

这是同学的代码:

http://img1.sycdn.imooc.com//climg/5c09ea2400011c0c05710242.jpg

自己可以重新测试下,祝学习愉快!

  • 提问者 慕尼黑4757019 #1
    老师,我还是不懂,刚刚试了代码,打印结果还是3, 按照您说的,正常的打印结果应该是什么呢?
    2018-12-07 11:41:53
  • 好帮手慕星星 回复 提问者 慕尼黑4757019 #2
    结果应该是空,建议将你测试的代码粘贴上来,老师帮助你测试下。
    2018-12-07 12:02:42
  • 提问者 慕尼黑4757019 回复 好帮手慕星星 #3
    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>变量、作用域</title> </head> <body> <button>1</button> <button>2</button> <button>3</button> <script type="text/javascript"> function fn(){ var name=3; } console.log(name); </script> </body> </html> 老师,这里为什么是空,而不是未定义的呢?
    2018-12-07 14:15:27
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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