javascript判断一个变量或对象是否存在

判断一个变量对象是否存在,是一种常用的操作。我这里收集了几种。

//1. 最常用的一种方法。if(typeof v == 'undefined'){
    console.log("v is undefined!");   //v is undefined!}

  if (myObj === undefined) {

    var myObj = { };

 }


  if (myObj == null) {

    var myObj = { };

  }

//2. 检测对象的属性是否存在不必用typeof
 {};
if(!obj.b){
    console.log("not have attribute 'b'");   //not have attribute 'b'
}
if(window.addEventListener){
   console.log("This in not IE!");   // This in not IE!}//3.在给对象添加属性时,也会遇到问题。

    obj.property.number = 2;   //TypeError: obj.property is undefined   
    /**    *    下面这种情况虽然没有出现语法错误,但实际上已经出现了错误.    *    属性是复合型变量所特有的,而obj.property是数值型变量,不能含有属性.    */
if(!myObj1){
  myObj1 = {};   //ReferenceError: myObj is not defined
}
//5. 需要如下初始化,重点在“var”。
if (!myObj2) {
        console.log("aaa");   //aaa
     var myObj2 = { };       
  }
if(!window.myObj3){
    console.log("3");   //3
}

if(!this.myObj4){
    this.myObj4 = {};
    console.log(4); //4}
//或者可以这样
var global = this;
if(!global.myObj5){
    global.myObj5 = {};
    console.log(5);
}

//8.由于在已定义、但未赋值的情况下,myObj的值直接等于undefined,所以上面的写法可以简化
var myObj6 ;
if (myObj6 == undefined) {
    var myObj6 = { };
        console.log("6");
  }//9.使用in运算符
if(!('myObj7' in window)){
console.log("7");
}
//10.使用hasOwnProperty方法
if(!this.hasOwnProperty('myObj8')){
    console.log("8");
    this.myObj8 = {};
}

 

 

36人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册