美文网首页
数据类型-未定义 undefined、空 null

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

作者: 素弥 | 来源:发表于2016-09-16 23:12 被阅读79次

未定义 undefined

  • 定义

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

  • 常见位置(常见用法)

    • 变量被声明了,但没有赋值时,就等于undefined
var a;
a    //undefined
  • 调用函数时,应该提供的参数没有提供,该参数的值为undefined
function fn(a){
        console.log(a);    //undefined
};
fn();
  • 对象没有赋值的属性,该属性的值为undefined
var a=1;
console.log(a.style);    //undefined
  • 函数没有返回值时,默认返回undefined
var a = function fn(){
        alert(1);    //1
};
console.log(fn());    //undefined

空 null

  • 定义

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

  • 常见位置(常见用法)

    • 获取页面中不存在的东西,返回值为null
var btn = document.getElementById('btn');  //页面中没有btn这个id
a    //null
  • 调用函数时,不需要传入某个参数,这时就可以传入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返回值

typeof undefined    //'undefined'
typeof null         //'object'
//并不是说null的数据类型就是对象,而是JavaScript早期部署中的一个约定俗成,其实不完全正确,后来再想改已经太晚了,会破坏现存代码,所以一直保留至今
  • Number()返回值

Number(undefined)    //NaN
Number(null)         //0

相关文章

网友评论

      本文标题:数据类型-未定义 undefined、空 null

      本文链接:https://www.haomeiwen.com/subject/oauiettx.html