未定义,你是如何工作的?

时间:2013-02-07 10:58:51

标签: javascript undefined referenceerror

只是一个简单的问题:)

如果我有:

var user = {'name': 'Fred'};

所以

console.log(user.name); // Fred
console.log(user.age); // undefined

但是

console.log(test); // ReferenceError: test is not defined

我不明白为什么因为对我而言与

相同
console.log(window.test); // undefined

在我的项目中,我尝试检查是否存在全局变量但是我有一个referenceError ...我真的不明白为什么followinf代码不起作用...

if (TestGlobal) // ReferenceError: TestGlobal is not defined
   console.log(' allo 1 ');

if (typeof(TestGlobal ) !== 'undefined') // Ok
   console.log(' allo 1 ');

1 个答案:

答案 0 :(得分:1)

......还有一个简单的答案:

  • 如果键不存在,则属性引用始终计算其值或undefined值,只要未定义基值(然后将抛出TypeError)。
  • 如果之前没有定义,变量抛出ReferenceErrors,除非它们与typeof keyword一起使用(它们只评估为"undefined")。