初识JS,可能很多人都会混淆undefined和null,不是特别清楚两者的区别。下面我们就来对比一下undefined和null。
一、undefined
undefined,表示数据未定义。通俗地讲,就是一个变量在声明的时候应该被赋值,但是并没有被定义,这时这个变量的数据类型就是undefined。
undefined是全局对象(window)的一个特殊属性。
当一个变量的数据类型为undefined时,此变量会占用一部分内存。
var num;
console.log(typeof(num)); //结果 undefined
console.log(typeof(undefined)); //结果 undefined
二、null
null,表示变量为空。举个例子,声明一个变量,不需要为其赋确定值,就可以为其定义为null。
null是一个对象。
当一个变量的数据类型为null时,此变量不会占用内存。
var num = null;
console.log( typeof(num)); //结果 object
三、数据类型转换
1.转换为布尔值
类别 | 布尔值 |
undefined | false |
null | false |
2.转换为数值
类别 | 数值 |
undefined | NaN |
null | 0 |
3.转换为字符串
类别 | 字符串 |
undefined | ‘undefined’ |
null | ‘null’ |