null :
null是javascript的关键字,表示“空”,是不包含任何值的javascript内置对象。
alert(typeof(null)); //结果是object
可以在声明变量时作为一个占位符防止报错(var a = null,表示a这个变量的值是“空”)。
var a = null; alert(a); //结果是null
undefined:
undefined不是javascript的关键字,它表示一个变量已经声明但是没有初始化
var a; alert(a); //结果是undefined
这里我个人认为undefined本身是一个值,它的类型是"undefined",这么说可能有些拗口,但是看下下面的例子:
var a; alert(typeof(undefined)); //结果undefined 这里并不会把undefined当作一个没有声明的变量,否则会产生运行时错误
alert(typeof(a)); //结果undefined alert(a == undefined); //结果true alert(a === undefined) //结果ture, 一致性运算符只有当类型和值都相等的时候结果为true
在做无值校验时,不建议用if (variable == undefined)的方法.因为javascript默认null和undefined的值是相等的
alert(null == undefined); //true
最好用一致性运算符或者typeof判断
if (variable === undefined) //或者 if (typeof(variable) == "undefined")