复制代码 代码如下:
if (myObj不存在){
声明myObj;
}
javawww.cppcns.com
第一种写法
根据直觉,你可能觉得可以这样写:
复制代码 代码如下:
复制代码 代码如下:
if (!myObj) {
var myObj = { };
}
编程客栈
复制代码 代码如下:
var myObj;
if (!myObj) {
var myObj = { };
}
第二种写法
除了var命令,还可以有另一种改写,也能得到正确的结果:
复制代码 代码如下:
if (!window.myObj) {
myObj = { };
}
复制代码 代码如下:
if (!window.myObj) {
var myObj = { };
}
或者写成这样:
if (!window.myObj) {
window.myObj = { };
}
第三种写法
复制代码 代码如下:
if (!this.myObj) {
this.myObj = { };
}
第四种写法
复制代码 代码如下:
var global = this;
if (!global.myObj) {
global.myObj = { };
}
第五种写法
还可以使用typeof运算符,判断myObj是否有定义。
复制代码 代码如下:
if (typeof myObj == "undefined") {
var myObj = { };
}
第六种写法
由于在已定义、但未赋值的情况下,myObj的值直接等于undefined,所以上面的写法可以简化:
复制代码 代码如下:
if (myObj == undefined) {
var myObj = { };
}
第七种写法
上面的写法在"精确比较"(===)的情况下,依然成立:
复制代码 代码如下:
if (myObj === undefined) {
var myObj = { };
}
第八种写法
复制代码 代码如下:
if (myObj == null) {
var myObj = { };
}
编程客栈
第九种写法
还可以使用in运算符,判断myObj是否为顶层对象的一个属性:
复制代码 代码如下:
if (!('myObj' in window)) {
window.myObj = { };
}
第十种写法
复制代码 代码如下:
总结
1. 如果只判断对象是否存在,推荐使用第五种写法。
2. 如果除了对象是否存在,还要判断对象是否有null值,推荐使用第一种写法。
3. 除非特殊情况,所有变量都应该使用var命令声明。
4. 为了跨平台,建议避免使用window表示顶层对象。
5. 在Javascript语言中,null和undefined容易产生混淆。在可能同时涉及两者的情况下,建议使用"精确比较"运算符(===)。
本文标题: JS判断对象是否存在的10种方法总结
本文地址: http://www.cppcns.com/wangluo/javascript/103029.html
© 著作权归作者所有
举报
发表评论
0/200