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

关于未声明的全局变量的访问问题

请问一下,有没有人知道这么一个问题,就是:

console.log('window.k == null',window.k == null);/*true*/
console.log('window.k == undefined',window.k == undefined);/*true*/

console.log('window.k == k',window.k == k);/*Uncaught ReferenceError: k is not defined:后面这个k报错*/

其中k是没有定义的,当k定义了之后,

window.k == k 就是true了,

咩有定义的时候,console.log(window.k)是undefined

但是console.log(k)就报错,有人知道这个是为什么嘛?

理论上不应该是,不管k有没有定义,window.k不是一直等于k的嘛?


正在回答

1 回答

window.k是对象属性,k是变量。对象属性即使未定义也会返回undefined,但变量未定义就会报错。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript深入浅出
  • 参与学习       281112    人
  • 解答问题       1020    个

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

进入课程

关于未声明的全局变量的访问问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信