JavaScript-undefined与null区别

本文探讨了JavaScript中null与undefined的区别,详细介绍了这两种类型在不同情况下的使用及它们的特性,包括它们作为布尔值的表现及与其他类型的比较。

JavaScript中的null在其他编程语言中也很常见,但是JavaScript在设计的过程中null自动转换为0,为了更好表示空,这个时候undefined出现了,null通过typeof结果是“object”,undefined通过typeof表示这个值是这个类型的唯一成员。null和undefined中都是表示值的空缺,不过两者当做布尔值时都是false,通过==的时候都是相等的,但是null和undefined分别字符串,数字,布尔值相比都是false。

Null和Undefined区别

JavaScript取值为null的情况有两种:

1
2
3
4
5
//获取不到元素
1.var notExist= document.getElementById('notExist');//null
 
//原型链的终点,也是返回null的
2.Object.getPrototypeOf(Object.prototype)//null 

undefined的情况如下:

①变量声明,未赋值;

1
var a;//undefined

②查询对象的属性或数组元素的值不存在时,返回undefined; 

1
2
var arr=[1,2,3];//博客园-FlyElephant
console.log(arr[5]);//undefined   

③函数没有任何返回值的时候返回undefined;

1
function f(){};console.log(f());//undefined

④引用没有提供实参的函数形参的值会得到undefined:

1
function f(x){console.log(x);}f();//undefined

题外话

以前有一个很经典的JavaScript问题:

1
2
3
4
if (!("a" in window)) {
    var a = 1;
}
console.log(a);//博客园-FlyElephant

最后输出的是undefined,其中a是可以访问的,所有的声明都是提前声明的,a最开始的定义值是undefined,"a" in window是真,因此赋值语句没法执行到,最后的执行结果是undefined;

本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/5020726.html,如需转载请自行联系原作者


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值