javascript变量undefined和null的问题
2016-07-23 09:11
399 查看
我们经常会这样使用,对一个后台传过来的变量进行判断是否为空再取其值。
比如代码写成这样:if(variable) {
.... // 此处省略逻辑代码
}
问题来了:
1.variable变量是否存在,如果不存在(不存在也就是说连变量都没有声明)javascript是会返回undefined这个类型。
2.variable变量已声明存在,但是不知道它有没有定义类型。如果声明没定义类型,则返回undefined。
如
var a = 1 // 表示a是number类型
但仅仅是
var a; // 只是声明则a返回的也是undefined类型,
因为它并不知道a到底是number类型或是string类型再或着是boolean类型等。
3.variable变量已存在,并且它有类型了。比如var a = []表示a是一个object对象类型,如果a没有值,则返回的是null值。
综上三点: 如果一个变量不会返回上面两种undefined结果和null结果,则说明有并返回了具体的值。——当然如果熟悉java的人
都知道,在java中一个变量是否存在或空只需与null判断就完事了。
具体判断一个变量是否存在,安全写法应该这样:
// 先判断变量是否存在
if ( (typeof a) == 'undefined') { // 用关键字typeof判断,不存在则是返回undefined字符串
// 判断已存在变量的值是否为空
if ( a != undefined && a != null) { // 注意此处undefined是js中的一种类型,不是字符串
.....
}
}
比如代码写成这样:if(variable) {
.... // 此处省略逻辑代码
}
问题来了:
1.variable变量是否存在,如果不存在(不存在也就是说连变量都没有声明)javascript是会返回undefined这个类型。
2.variable变量已声明存在,但是不知道它有没有定义类型。如果声明没定义类型,则返回undefined。
如
var a = 1 // 表示a是number类型
但仅仅是
var a; // 只是声明则a返回的也是undefined类型,
因为它并不知道a到底是number类型或是string类型再或着是boolean类型等。
3.variable变量已存在,并且它有类型了。比如var a = []表示a是一个object对象类型,如果a没有值,则返回的是null值。
综上三点: 如果一个变量不会返回上面两种undefined结果和null结果,则说明有并返回了具体的值。——当然如果熟悉java的人
都知道,在java中一个变量是否存在或空只需与null判断就完事了。
具体判断一个变量是否存在,安全写法应该这样:
// 先判断变量是否存在
if ( (typeof a) == 'undefined') { // 用关键字typeof判断,不存在则是返回undefined字符串
// 判断已存在变量的值是否为空
if ( a != undefined && a != null) { // 注意此处undefined是js中的一种类型,不是字符串
.....
}
}
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解