全局变量不是可以直接写名字声明吗?

全局变量不是可以直接写名字声明吗?

# 具体遇到的问题
全局变量不是可以直接写名字声明吗?那为何此处person1会报错呢?
# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

正在回答

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

2回答

同学你好,window.person 表示访问window对象上的属性person,并不是声明一个变量,js语法中规定,访问对象上不存在的属性,返回的undefined,不会报错。如下:

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

但是下面的person1表示直接访问未定义的变量,而不是声明一个变量,所以会出现报错。

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

祝学习愉快~

好帮手慕慕子 2020-10-29 14:27:34

同学你好,全局变量可以命名为person1,但直接写person1属于访问变量而不是声明。本题代码报错,如下图所示,是因为还没有声明person1就直接使用了才导致报错的。

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

祝学习愉快~

  • 提问者 慕粉4184331 #1
    可是上面Window.person也是在括号里直接声明的啊,为什么上面的可以下面的不行
    2020-10-29 14:29:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

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

在线咨询

领取优惠

免费试听

领取大纲

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