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
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判断一个变量或对象是否存在的更多相关文章
- JavaScript 用七种方式教你判断一个变量是否为数组类型
JavaScript 如何判断一个变量是否为数组类型 引言 正文 方法一 方法二 方法三 方法四 方法五 方法六 方法七 结束语 引言 我们如何判断一个变量是否为数组类型呢? 今天来给大家介绍七种方式 ...
- Javascript如何判断一个变量是数字类型?
isNaN()不能判断一个变量是否为数字类型,isNaN(123)值为false,isNaN('123')值也为false.isNaN() 的实际作用跟它的名字isNaN并不一致,isNaN(NaN) ...
- 如何判断一个变量是数组Array类型
在很多时候,我们都需要对一个变量进行数组类型的判断.JavaScript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助. JavaScript中检测对象 ...
- type,isinstance判断一个变量的数据类型
type,isinstance判断一个变量的数据类型 import types type(x) is types.IntType # 判断是否int 类型 type(x) is types.Strin ...
- 如何判断一个变量是否为数组(isArray)
在我们平时的工作中经常会用到如何判断一个变量是否为数组.常用的方法很多,有用常用框架里面的,isArray.但是关于这个isArray的实现,各有不同. 常用的方法有如下几种 1.instanceof ...
- C++语法小记---如何判断一个变量是不是指针
如何判断一个变量是不是指针? 思路:模板函数 + 可变参数 + sizeof(函数) #include <iostream> #include <string> using n ...
- Javascript 判断一个数字是否含有小数点
JavaScript 判断一个数字是否含有小数点,如果含有,则返回该数字:如果不含小数点,则小数点后保留两位有效数字: function hasDot(num){ if(!isNaN(num)){ r ...
- shell判断一个变量是否为空
判断一个变量是否为空 . 1. 变量通过" "引号引起来 如下所示:,可以得到结果为 IS NULL. #!/bin/sh para1= if [ ! -n "$para ...
- empty是判断一个变量是否为“空”,而isset 则是判断一个变量是否已经设置
1.echo和print的区别php中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.echo输出后没有返回值,但print有返回值,当其执行失败时返回flase.因此可以作 ...
随机推荐
- tomcat 修改默认端口8080 为 80端口
首先,找到你的安装目录,如图: 打开server.xml文件,找到8080,如图: 将 8080 改成你想要的端口,如 80 即可.改完后,记得要重启tomcat! 将端口改成 80 后,访问就不需 ...
- 浅谈 HTTP 协议
一. HTTP简介 超文本传输协议 Hyper Text Transfer Protocol 是一种用于分布式.协作式和超媒体信息系统的应用层协议 HTTP是万维网的数据通信的基础 HTTP有很多应用 ...
- final,buaa_oo conclusion
UML系列作业设计架构 第13次作业 本单元的第一次作业中,涉及到了类图的解析.在着手做这单元作业的时候,需要将每一种 UmlElement 再封装,并在解析时,用 helper 单例来进行查询处理( ...
- go 和make的用法 区别
Doand Make are two verbs which frequently confuse students of English. Learn the Difference between ...
- python 跨域
CORS跨域请求 CORS即Cross Origin Resource Sharing 跨域资源共享, 那么跨域请求还分为两种,一种叫简单请求,一种是复杂请求~~ 简单请求 HTTP方法是下列方法之一 ...
- [android 应用框架api篇] bluetooth
bluetooth接口 android.bluetooth.jar 官网网址: 接口类: https://developer.android.com/reference/android/bluetoo ...
- 九度oj 题目1035:找出直系亲属
题目描述: 如果A,B是C的父母亲,则A,B是C的parent,C是A,B的child,如果A,B是C的(外)祖父,祖母,则A,B是C的grandparent,C是A,B的grandchild ...
- Access denied for user ''@'localhost' to database 'mysql'
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql' 在centos下安装好了mysql,用r ...
- 【Luogu】P1948电话线(二分SPFA)
题目链接 二分最长的电话线长度.把所有大于这个长度的边权设成1,小于等于的设成零,然后跑SPFA看dis[n]是否>k.若>k则l=mid+1 否则r=mid-1 放代码 #include ...
- 算法复习——求最长不下降序列长度(dp算法)
题目: 题目背景 161114-练习-DAY1-AHSDFZ T2 题目描述 有 N 辆列车,标记为 1,2,3,…,N.它们按照一定的次序进站,站台共有 K 个轨道,轨道遵从先进先出的原则.列车进入 ...