引发错误的JavaScript属性访问

时间:2017-06-26 22:45:02

标签: javascript properties runtime-error

属性访问在哪些特定情况下会在JavaScript中引发错误?

在Node.js中,这会打印firebase.child(subject).addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { Map<String,String> td = (HashMap<String,String>) snapshot.getValue(); users = (List)td.keySet(); } @Override public void onCancelled(DatabaseError firebaseError) { Toast.makeText(context,"Internet connection failed",Toast.LENGTH_LONG).show(); } });

undefined

这会引发错误:

x = 3
console.log( x.thing );

这里的语义到底是什么?属性访问是几乎所有值的正常行为 - 甚至函数 - 但在x = null; console.log( x.thing ); undefined它会抛出错误。

我不能为我的生活找到确认那些是唯一的案例。任何人都可以证实吗?

1 个答案:

答案 0 :(得分:1)

undefinednull不是对象的引用,也不是可以在对象包装器中隐式装箱的原始值。因此,任何引用属性的尝试都将失败。

当您使用数字(3)时,运行时会将其作为数字实例,但当然没有&#34;事物&#34;属性,因此值为undefined

此外,函数是一流的对象,因此对函数属性的引用实际上并不是很奇怪的&#34;无论如何。