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

//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
var obj = {};
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是数值型变量,不能含有属性.
    */
    var obj = {}; 
    obj.property = 2 ; 
    obj.property.number = 3;

//4.直接用未定义的对象来判断,会出错。如下例。
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 = {};
}

javascript判断一个变量或对象是否存在的更多相关文章

  1. JavaScript 用七种方式教你判断一个变量是否为数组类型

    JavaScript 如何判断一个变量是否为数组类型 引言 正文 方法一 方法二 方法三 方法四 方法五 方法六 方法七 结束语 引言 我们如何判断一个变量是否为数组类型呢? 今天来给大家介绍七种方式 ...

  2. Javascript如何判断一个变量是数字类型?

    isNaN()不能判断一个变量是否为数字类型,isNaN(123)值为false,isNaN('123')值也为false.isNaN() 的实际作用跟它的名字isNaN并不一致,isNaN(NaN) ...

  3. 如何判断一个变量是数组Array类型

    在很多时候,我们都需要对一个变量进行数组类型的判断.JavaScript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助. JavaScript中检测对象 ...

  4. type,isinstance判断一个变量的数据类型

    type,isinstance判断一个变量的数据类型 import types type(x) is types.IntType # 判断是否int 类型 type(x) is types.Strin ...

  5. 如何判断一个变量是否为数组(isArray)

    在我们平时的工作中经常会用到如何判断一个变量是否为数组.常用的方法很多,有用常用框架里面的,isArray.但是关于这个isArray的实现,各有不同. 常用的方法有如下几种 1.instanceof ...

  6. C++语法小记---如何判断一个变量是不是指针

    如何判断一个变量是不是指针? 思路:模板函数 + 可变参数 + sizeof(函数) #include <iostream> #include <string> using n ...

  7. Javascript 判断一个数字是否含有小数点

    JavaScript 判断一个数字是否含有小数点,如果含有,则返回该数字:如果不含小数点,则小数点后保留两位有效数字: function hasDot(num){ if(!isNaN(num)){ r ...

  8. shell判断一个变量是否为空

    判断一个变量是否为空 . 1. 变量通过" "引号引起来 如下所示:,可以得到结果为 IS NULL. #!/bin/sh para1= if [ ! -n "$para ...

  9. empty是判断一个变量是否为“空”,而isset 则是判断一个变量是否已经设置

    1.echo和print的区别php中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.echo输出后没有返回值,但print有返回值,当其执行失败时返回flase.因此可以作 ...

随机推荐

  1. 【SaltStack】在Master上给Minion端安装zabbix

    一.IP信息说明 [Master] IP: 192.168.236.100 [Minion] IP: 192.168.236.101 二.配置SaltStack 关于SaltStack Master和 ...

  2. 二分查找与 bisect 模块

    Python 的列表(list)内部实现是一个数组,也就是一个线性表.在列表中查找元素可以使用 list.index() 方法,其时间复杂度为O(n).对于大数据量,则可以用二分查找进行优化.二分查找 ...

  3. idea中代码费格式化 ctrl+alt+L

    idea中代码费格式化   ctrl+alt+L

  4. [android 开发篇] 易白教程网址

    http://www.yiibai.com/android/android_bluetooth.html

  5. hdu2083

    开始忘排序了. #include <stdio.h> #include <math.h> #include <algorithm> using namespace ...

  6. XML文件中<return_code><![CDATA[SUCCESS]]></return_code>中CDATA的用法

    转义字符不合法的XML字符必须被替换为相应的实体. 如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始.所以不应该象下面 ...

  7. oracle create directory

    1.新建directory的语法 CREATE [OR REPLACE] DIRECTORY directory AS 'pathname'; 例如: create or replace direct ...

  8. 【Luogu】P3865ST表模板(ST表)

    题目链接 本来准备自己yy一个倍增来着,然而一看要求O1查询就怂了. ST表模板.放上代码. #include<cstdio> #include<cstdlib> #inclu ...

  9. BZOJ 3196 二逼平衡树 ——树套树

    [题目分析] 全靠运气,卡空间. xjb试几次就过了. [代码] #include <cmath> #include <cstdio> #include <cstring ...

  10. ado:SqlDataAdapter的两种不同写法,以及SqlCommand的两种不同写法

    原文发布时间为:2008-08-01 -- 来源于本人的百度文章 [由搬家工具导入] SqlDataAdapter:(它是自动打开连接且自动关闭的,所以可以不必显示打开关闭连接) SqlConnect ...