javascript如何判断对象是否存有

lxf2023-03-11 11:43:01

分辨方式:1、用“if(!Obj)”句子;2、用“if(!window.Obj)”;3、用“if(!this.Obj)”;4、用“if(typeof Obj=="undefined")”;5、用“if(Obj==undefined)”这些。

javascript如何判断对象是否存有

实例教程作业环境:windows7系统软件、javascript1.8.5版、Dell G3计算机。

javascript判断对象是不是存有的方式

如今,我们应该判断一个全局对象myObj存不存在,假如不存有,便对它开展申明。用自然语言理解叙述的算法如下所示:

if (myObj不会有){
申明myObj;
}

下边跟大家分享10种建立方式:

方式1:

if (!myObj) {
var myObj = { };
}

方式2:

除开var指令,也可以有另一种改变,也会得到正确结论:

if (!window.myObj) {
myObj = { };
}

window是javascript的高层目标,每一个局部变量都就是它的特性。因此,分辨myobj是不是为空,相当于分辨window目标是否存在myobj特性,那样就能避免由于myObj并没有界定而发生ReferenceError不正确。但是,从代码的规范化考虑到,建议还是对第二行再加上var:

if (!window.myObj) {
var myObj = { };
}

或是写出那样:

if (!window.myObj) {
window.myObj = { };
}

方式3:

上边这类书写的缺点在于,在一些软件环境中(例如V8、Rhino),window未必就是高层目标。因此,考虑到改变成:

if (!this.myObj) {
this.myObj = { };
}

在局部变量层面上中,this关键词一直偏向高层自变量,所以才能够不同于不同类型的软件环境。

方式4:

可是,上边这么写易读性较弱,并且this的偏向是可调的,非常容易出差错,因此进一步改变:

var global = this;
if (!global.myObj) {
global.myObj = { };
}

用自定义变量global表示高层目标,就清晰得多。

方式5:

还可以使用typeof操作符,分辨myObj是否存在界定。

if (typeof myObj == "undefined") {
var myObj = { };
}

是目前应用最普遍的分辨javascript目标是不是存有的方式。

方式6:

因为在已界定、但并未取值的情形下,myObj数值立即相当于undefined,因此上边的书写能够简单化:

if (myObj == undefined) {
var myObj = { };
}

这里还有两个地方应注意,最先第二行的var关键词也不能少,不然会有ReferenceError不正确,次之undefined不可以加反斜杠或引号,这个地方较为是指undefined这类基本数据类型,而非"undefined"这一字符串数组。

方式7:

上边的书写在"精准较为"(===)的情形下,仍然创立:

if (myObj === undefined) {
var myObj = { };
}

方式8:

依据javascript的表达设计方案,undefined == null,因为比较myObj是不是相当于null,也会得到恰当结论:

if (myObj == null) {
var myObj = { };
}

但是,尽管运作结论恰当,但从语义上看,这个辨别方式是不对的,应该避免。由于null是指早已取值为null的空对象,即这一目标实际是有系数的,而undefined是指不会有或者没有取值的对象。因而,这儿必须使用"比较运算符"(==),假如这儿应用"精准比较运算符"(===),便会出差错。

方式9:

还可以使用in操作符,分辨myObj是否属于高层对象一个特性:

if (!('myObj' in window)) {
window.myObj = { };
}

方式10:

最终,应用hasOwnProperty方式,分辨myObj是否属于高层对象一个特性:

if (!this.hasOwnProperty('myObj')) {
this.myObj = { };
}

汇总

1. 如果要判断对象存不存在,建议使用第五种书写。

2. 假如除开目标存不存在,还需要判断对象是否存在null值,建议使用第一种书写。

3. 除非是突发情况,全部自变量都应应用var指令申明。

4. 为了能混合开发,提议尽量使用window表明高层目标。

5. 在Javascript语言中,null和undefined很容易产生搞混。在很有可能与此同时涉及到二者的情形下,最好使用"精准较为"操作符(===)。

【强烈推荐学习培训:javascript高级教程】

以上就是关于javascript如何判断对象是否存有的具体内容,大量欢迎关注AdminJS其他类似文章!