测试JavaScript中是否未定义变量的最合适方法是什么?我已经看到了几种可能的方法:
if (window.myVariable)
要么
if (typeof(myVariable) != "undefined")
要么
if (myVariable) //This throws an error if undefined. Should this be in Try/Catch?
如果您想知道变量是否已声明而无论其值如何,那么使用in
运算符是最安全的方法。考虑以下示例:
// global scope
var theFu; // theFu has been declared, but its value is undefined
typeof theFu; // "undefined"
但这在某些情况下可能不是预期的结果,因为已声明但未初始化变量或属性。使用in
运算符进行更强大的检查。
"theFu" in window; // true
"theFoo" in window; // false
如果您想知道变量是否尚未声明或具有值undefined
,请使用typeof
运算符,该运算符可确保返回字符串:
if (typeof myVar !== 'undefined')
直接比较比较undefined
麻烦,undefined
可能会被覆盖。
window.undefined = "foo";
"foo" == undefined // true
正如@CMS指出的那样,此问题已在ECMAScript第5版中进行了修补,并且undefined
不可写。
if (window.myVar)
还将包含这些虚假值,因此它不是很可靠:
false
0
“”
NaN
null
undefined
第三种情况- if (myVariable)
在两种情况下也会引发错误。第一种是未定义变量时抛出ReferenceError
。
// abc was never declared.
if (abc) {
// ReferenceError: abc is not defined
}
另一种情况是已定义变量,但是具有getter函数,该函数在调用时会引发错误。例如,
// or it's a property that can throw an error
Object.defineProperty(window, "myVariable", {
get: function() { throw new Error("W00t?"); },
set: undefined
});
if (myVariable) {
// Error: W00t?
}
问题内容: 我想检查变量是否已定义。例如,以下引发未定义的错误 如何捕获此错误? 问题答案: 在JavaScript中,是一个对象。不存在的事物还有另一个价值,。DOM 在几乎所有无法在文档中找到某些结构的情况下都会返回,但是在JavaScript本身中是所使用的值。 第二,不,没有直接对等的内容。如果您确实要专门检查,请执行以下操作: 如果要检查变量是否存在,那只能用/ 来完成,因为它将未声明的
本文向大家介绍如何在JavaScript中检查未定义的变量?,包括了如何在JavaScript中检查未定义的变量?的使用技巧和注意事项,需要的朋友参考一下 要检查变量是否为“未定义”,您需要使用以下命令进行检查。如果结果为“ false”,则表示未定义变量。在这里,变量结果为“ True”- 示例
问题内容: 我们经常在JavaScript代码中使用以下代码模式 有没有更冗长的检查方法具有相同的效果? 根据一些论坛和文献的说法,简单地讲,以下内容应具有相同的效果。 不幸的是,当未定义时,Firebug会将这样的语句评估为运行时错误,而第一个语句就可以了。这仅仅是Firebug的一种(有害的)行为,还是这两种方式之间确实存在某些区别? 问题答案: 您必须区分两种情况: 变量可以是或未 声明的
问题内容: 我看到了这个问题,但是没有看到JavaScript特定的示例。JavaScript中是否有一个简单的可用工具,还是仅用于检查的情况? 问题答案: 如果您只想检查是否有任何价值,可以 如果您需要专门为在空空字符串检查,我想核对是你最好的选择,使用的运营商(让你知道这是,事实上,一个字符串你比较反对)。
在我使用的数组中。查找以查找对象并将其属性设置为某个值。我只想在有值的情况下设置名称。即;检查以下未定义的是我的数组,我正在使用。查找以查找对象并设置其名称。我只想在找到id==checkid的对象时进行设置。
问题内容: 如何在JavaScript中检查空值?我在下面编写了代码,但是没有用。 在JavaScript程序中如何找到错误? 问题答案: JavaScript在检查“空”值方面非常灵活。我猜您实际上是在寻找空字符串,在这种情况下,这种简单的代码将起作用: 这将检查空字符串(), ,, 以及数字和 请注意,如果您专门检查数字,则使用此方法时常会犯错,对于返回的函数,它是首选(或(或(也检查了错误代