undefined和NUll的区别

时间:2022-08-29 21:23:27

Undefined类型只有一个值 即特殊的undefined 在使用var声明变量但未对其加以初始化时 这个变量的值就是undefined 

	var message
	alert(message == undefined); //true

此例子声明message 但未对其进行初始化,比较这个变量的自变量与undefined字面量 结果表明他们是相等的; 这个例子使用undefined值显式初始化变量message 但我们没有必要这么做  因为未初始化的值默认值就是undefined

不过 包含undefined值得变量和尚未定义的变量还是不一样 

	var message
	// var age

	alert(message); //弹窗'undefined'
	// alert(age); //产生错误

对于尚未声明的变量 只能执行一项操作 即使用typeof操作符检测其数据类型

	var message
	// var age

	alert(typeof message); //弹窗'undefined'
	alert(typeof age); //弹窗'undefined'

 

 

NULL类型是第二个只有一个值的数据类型 这个特殊的值是NULL,从逻辑角度看NULL值表示一个空对象指针,这也正是使用typeof操作符检测null时值会返回"object"的原因

        var message = null;
	alert( typeof message); //弹窗'object'    

如果定义的变量准备在将来用于保存对象 那么最好将该变量初始化为null 而不是其他值 这样一来只要检测null值就可以知道相应的变量是否已经保存了一个对象的引用 

	if( message != null){
		//对message对象执行某些操作
	}

实际上 undefined的值是派生自null值得

alert( null ==undefined);//true