JS数据类型中null和undefined的区别

null:

null是js中的关键字,表示空值,null可以看做是object中的一个特殊的值,如果一个object值为空,表示这个对象不是有效的对象。

undefined:

undefined不是js中的关键字,其是一个全局变量,是Globa的一个属性,一下情况会返回undefined
//(1)使用一个未赋值的变量:var num;
//(2)使用已赋值但未声明的变量:num=1;
//(3)使用一个对象属性,但该属性不存在或者未赋值
//(4)调用函数时,该提供的参数没有提供
    function fn(a){
        console.log(a);
    }
    fn();//undefined
//(5)函数没有返回值时,默认返回undefined
    var ss=fn();
    console.log(ss);//undefined

相同点:

都是原始类型的值,保存在栈中变量本地

两者的区别:

//1.类型不一样
   console.log(typeOf undefined);//undefined
   console.log(typeOf null);//object
//2.转化为值时不一样:undefined为NaN,null为0
   console.log(Number(undefined));//NaN
   console.log(Number(10+undefined));//NaN

   console.log(Number(null));//0
   console.log(Number(10+null));//10
//3.undefined===null;//false
   undefined==null;//true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。