JavaScript 中 undefined 和 null 的区别: 一, 两者类型不一样, null 是 JS 中的关键字, 表示空值. undefined 不是 JS 中的关键字, 其是一个全局变量. 二, 转化为值时不一样: undefined 为 NaN ,null 为 0.
JavaScript 中 undefined 和 null:
Null:
null 是 JS 中的关键字, 表示空值, null 可以看作是 object 的一个特殊的值, 如果一个 object 值为空, 表示这个对象不是有效对象.
Undefined:
undefined 不是 JS 中的关键字, 其是一个全局变量, 是 Global 的一个属性, 以下情况会返回 undefined:
1) 使用了一个未定义的变量; var i;
2) 使用了已定义但未声明的变量;
3) 使用了一个对象属性, 但该属性不存在或者未赋值;
4) 调用函数时, 该提供的参数没有提供:
- function func(a){
- console.log(a);
- }
- func();//undefined
5) 函数没有返回值时, 默认返回 undefined
- var aa=func();
- aa;//undefined
相同点:
都是原始类型的值, 保存在栈中变量本地
两者的区别:
1. 类型不一样:
- console.log(typeOf undefined);//undefined
- console.log(typeOf null);//object
2. 转化为值时不一样: undefined 为 NaN ,null 为 0
- console.log(Number(undefined));//NaN
- console.log(Number(10+undefined));//NaN
- console.log(Number(null));//0
- console.log(Number(10+null));//10
- 3.undefined===null;//false
- undefined==null;//true
何时使用:
null 当使用完一个比较大的对象时, 需要对其进行释放内存时, 设置为 null;
- var arr=["aa","bb","cc"];
- arr=null;// 释放指向数组的引用
来源: http://www.css88.com/qa/javascript/11011.html