Javascript 检查未定义的变量
可能重复:Javascript 检查未定义的变量,javascript,Javascript,可能重复: 我想检查javascript中定义的变量。请参阅以下几个示例,并帮助我检查Javascript中未定义(且不检查其他内容)的“a”的最佳方法是什么 一个 如果(a==未定义){…} 第二 如果(a==“未定义”){…} 第三 如果(typeof a==“未定义”){…} 最后 如果(a){…} if(typeof a==“undefined”){…}是检查变量是否未定义的最佳方法。 if(a===undefined){…}通常是同一件事,然而,与通常的看法相反,“undefined
我想检查javascript中定义的变量。请参阅以下几个示例,并帮助我检查Javascript中未定义(且不检查其他内容)的“a”的最佳方法是什么 一个 如果(a==未定义){…} 第二 如果(a==“未定义”){…} 第三 如果(typeof a==“未定义”){…} 最后 如果(a){…}
if(typeof a==“undefined”){…}
是检查变量是否未定义的最佳方法。if(a===undefined){…}
通常是同一件事,然而,与通常的看法相反,“undefined”在javascript中不是一个关键字,实际上可以为它指定一个值。此外,如果未声明或初始化a
,将抛出错误
if(a==“undefined”){…}
将检查a是否是值为“undefined”的字符串,if(a){…}
将为所有错误值返回true,例如null
和0。javascript中的undefined
是一个实际值,因此如果执行a==“undefined”
您只是检查已定义的变量是否分配了未定义的值。如果变量还没有被提升,那么您将得到一个很好的错误
if (typeof a == "undefined") {
....
}
if(a)
正在检查a
的值是true
还是false
undefined
和其他许多值一样,都是false,因此它的作用是false。不过,如果之前没有声明该变量,那么这也会抛出一个错误
typeof a==“undefined”
是检查可能还不存在的变量的正确方法。您是在检查变量是否已定义还是未定义?i、 e.变量定义为:var a;变量未定义:var a;为什么你认为typeofa===“undefined”
是正确的检查方法?因为它实际上会测试变量是否存在,而不是像其他选项一样,它的值是undefined
还是false
。因为如果a
没有初始化或声明,它不会抛出错误,其中asif(a)
会。@eclans不,不会。如果a未被声明或初始化并分配了未定义的值,则返回true。您说过如果(a==未定义)通常是相同的。你用哪种方法比较?其次,如果(a的类型==“未定义”)这样说正确吗?或者这是正确的如果(a的类型==“未定义”)
?如果(a的类型==“未定义”)
通常与如果(a的类型==“未定义”)
相同if(typeof(a)==“undefined”)
和if(typeof(a)==“undefined”)
完全相同。您可以使用您想要的任何版本。@jeff第一个版本不是检查的好方法,因为如果未声明或初始化a
,将抛出错误。最好的检查方法是if(typeof a==“undefined”)
。当然,这并不区分a
是否已创建并分配了未定义的值或根本未创建。但是这种区别到底有什么意义呢?@RobG-谢谢你告诉我第一个方法抛出的错误。我更新了我的答案。