数据类型-未定义 undefined、空 null

2016-09-16  本文已影响79人  素弥

未定义 undefined

这种数据类型只有一个值,就是undefined
表示"缺少值",就是此处应该有一个值,但是还没有定义

var a;
a    //undefined
function fn(a){
        console.log(a);    //undefined
};
fn();
var a=1;
console.log(a.style);    //undefined
var a = function fn(){
        alert(1);    //1
};
console.log(fn());    //undefined

空 null

这种数据类型只有一个值,就是null
null表示"没有对象",即该处不应该有值

var btn = document.getElementById('btn');  //页面中没有btn这个id
a    //null

注意:JavaScript的标识名区分大小写,undefined和null不同于Undefined和Null(或者其他仅仅大小写不同的词形),后者只是普通的变量名

两者对比

var a;
a                //undefined
a == null        //true    存在数据类型转换,a被转换成了undefined,而undefined == null,故这里为true
a == undefined   //true
a === null       //false
a === undefined  //true
typeof a         //'undefined'
if(!null){       //存在隐式类型转换,将null转换为false
    alert(1);      //故这里弹出1
}
if(!undefined){  //存在隐式类型转换,将undefined转换为false
    alert(1);      //故这里弹出1
}
//undefined和null在if语句中,都会被自动转为false
//故下面的undefined == null的结果为true
undefined == null     //true        存在隐式类型转换,undefined和null都被转换为false
undefined === null     //false
typeof undefined    //'undefined'
typeof null         //'object'
//并不是说null的数据类型就是对象,而是JavaScript早期部署中的一个约定俗成,其实不完全正确,后来再想改已经太晚了,会破坏现存代码,所以一直保留至今
Number(undefined)    //NaN
Number(null)         //0
上一篇 下一篇

猜你喜欢

热点阅读