如何验证JavaScript中对象的存在?
以下工作:
if (!null)
alert("GOT HERE");
但是这会抛出一个错误:
if (!maybeObject)
alert("GOT HERE");
错误:
maybeObject没有定义。
如何验证JavaScript中对象的存在?
以下工作:
if (!null)
alert("GOT HERE");
但是这会抛出一个错误:
if (!maybeObject)
alert("GOT HERE");
错误:
maybeObject没有定义。
当前回答
0和null是隐式指针。如果你不做算术,比较,或打印'0'到屏幕上,就没有必要实际输入它。其隐含的。就像隐含的那样。出于同样的原因,Typeof也不是必需的。手表。
if(obj) console.log(“exist”);
我没有看到request for a not或else,因为它不包括。就像我喜欢不符合问题的额外内容一样。让我们保持简单。
其他回答
如果这是一个全局对象,你可以使用If (!window.maybeObject)
你可以使用:
if (typeof objectName == 'object') {
//do something
}
我刚刚测试了上面的typeOf例子,没有一个适合我,所以我用了这个:
btnAdd = document.getElementById("elementNotLoadedYet"); if (btnAdd) { btnAdd。textContent = "Some text here"; }其他{ 警报(“没有发现!”); }
如果你只关心它的存在(它被宣布了吗?),认可的答案就足够了:
if (typeof maybeObject != "undefined") {
alert("GOT THERE");
}
如果你关心它的实际值,你应该添加:
if (typeof maybeObject != "undefined" && maybeObject != null ) {
alert("GOT THERE");
}
As typeof(null) == "object"
例如:bar = {x: 1, y: 2, z: null}
typeof( bar.z ) == "object"
typeof( bar.not_present ) == "undefined"
通过这种方式,您可以检查它既不是null也不是undefined,并且由于typeof在value不存在的情况下不会出错加上&&短路,因此您永远不会得到运行时错误。
就我个人而言,我建议在某个地方添加一个helper fn(让我们不要相信typeof()):
function exists(data){
data !== null && data !== undefined
}
if( exists( maybeObject ) ){
alert("Got here!");
}
两种方式。
用于局部变量的Typeof
你可以使用typeof测试本地对象:
if (typeof object !== "undefined") {}
全局变量窗口
你可以通过检查window对象来测试全局对象(在全局作用域中定义的对象):
if (window.FormData) {}