如何区分未声明的变量和声明但未赋值的变量?

leo*_*eon 6 javascript

两种情况下,变量的类型都将是"未定义的".但未声明的变量会引发异常.

有一个简单的方法来处理这个?

小智 4

您可能会在如何检查变量或对象是否未定义?中找到问题(以及我的答案)。相关的。一般来说,我认为对“未声明的变量”的任何访问都是编程错误。

然而,这种特殊情况*只能**通过使用异常检测来检测ReferenceError。但是,恶心,恶心,恶心!请记住,变量声明是静态词法构造,忽略全局对象的属性变量的怪癖。

ReferenceError,现在“严格”,存在是有原因的,我怀疑这是一个 XY 问题。我什至不建议为此目的使用typeof:修复代码:-)

快乐编码。


*有人指出,它"variable" in window也[且仅]适用于全局“变量”(它们实际上只是不需要在所有上下文中限定的属性)。