js中的undefined判断

 

js中的undefined判断  

http://qustliuyongjie.blog.163.com/blog/static/169508972011514102050397/

 

 

 

           javascript中的数据类型只有六种,number , string , boolean , object , function , undefined .另外还有一个很特殊且很难理解的null,但是null并不是第七种数据类型,后面我会有讲到。看一个变量是什么数据类型可以用typeof函数去判定,如:typeof(varItem) 。但是对于js的类型判断还存在好多有意思的地方。为此今天整理了一下。

           首先对于除了undefined之外的5中数据类型我想大家应该都不会搞错,在使用过程中也不存在什么理解上的误区。今天重点说一下undefined,
一个为 undefined 的值就是指在变量被创建后,但未给该变量赋值以前所具有的值。什么意思呢,变量被创建也就是用var 声明过,但是没有给变量赋值,如:var tmp;如果这是用typeof去判断这个变量的类型的话肯定是undefined类型。

          如果用var 声明了某变量之后我们可以直接用if( tmp == undefined )或者if( tmp != undefined ) 去判断,这个是没有问题的,不过这边也容易出现一个陷阱,如果一个变量没有用var声明过,而直接用
if( tmp == undefined )或者if( tmp != undefined ) 去判断的话是错误的,这个时候浏览器会报错,提示 XXX 未定义(IE下)或者XXX is not defined(火狐下)。我想在js中还是存在变量先声明再使用这个限制的,但是遇到上面的问题时还是可以直接使用typeof(XXX)来判断的吗,这个在所有浏览器下都是支持的,但是需要注意的是用typeof得出的结果是一个字符串,所以在比较的时候要比较字符串,如:typeof(undefined) == 'undefined'。

          另外js中还有一个让人搞不懂的null存在,其实这个并不是那么神秘,我们用typeof(null)查看一下发现了其中的奥秘,结果是一个object,这就很容易理解了,我想null应该是js中的一个内置变量(先这样理解吧,如有更好解释请指正),所以这时候我们如果还自以为是的用下面的结构去判断的话那肯定就错啦,if(is_beta == null){},你可能理所当然的认为既然为声明那肯定就为空(null)了,其实这样理解是不对的。

          其实null的用法是用来判断对象的是否为空的,如:if(document.getElementById('ddd') == null){alert('对象为空')};这种用法是对的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值