对Javascript中 null 和 undefined 的理解           

对Javascript中 null 和 undefined 的理解

ECMAScript 中有5种简单数据类型(也称基本数据类型):Undefined、Null、Boolean、Number、String。还有一种复杂数据类型:Object。

Undefined类型只有一个值,即undefined。只声明没有初始化的变量值就是undefined值。

ECMA-262: The Undefined type has exactly one value, called undefined. Any variable that has not been assigned a value has the value undefined.

Null类型是第二个只有一个值的数据类型,即null。null值表示一个空对象指针,这也是用typeof null 返回 object的原因。

ECMA-262: The Null type has exactly one value, called null.
	
		var obj = "a";
		var nullobj;

		if (nullobj == null){
		    console.log("obj is null");
		}

		if (nullobj == undefined){
		    console.log("obj is undefined");
		}

		if ( !nullobj ){
		    console.log("! obj ");
		}

		if(null == undefined){
		    console.log('null == undefined');
		}
	

Javascript 中会被当做假(false)的那些值

false, null, undefined, 数字0, 数字NaN, 空字符串""

	
		if(!0){
		    console.log('number 0')
		}
		if(!""){
		    console.log("empty string")
		}
		if(!null){
		    console.log("null")
		}
		if(!undefined){
		    console.log("undefined")
		}
		if(!false){
		    console.log("false")
		}
		if(!NaN){
		    console.log("NaN")
		}
	

你可以打开Chrome Console 查看代码运行结果。

2014-11-25