null和undefined区别?

82 篇文章 0 订阅
51 篇文章 0 订阅

JavaScript中
1.未定义,直接输出

console.log(x);

在这里插入图片描述
2.定义,未赋值

var x;
console.log(x);

在这里插入图片描述
3.定义后,赋值为null

var x=null;
console.log(x);

在这里插入图片描述


js中的undefined

  1. 描述:
    ① 是 JavaScript 基本类型之一,表示 “缺少值”,就是此处应该有一个值,但是还没有定义;
    ② 是 JavaScript 在运行时创建的全局变量,是全局对象的一个属性;
    ③ 在布尔运算中被认为是 false。
    注:有关全局对象和全局变量,可参考 javascript 全局对象与全局变量

  2. 典型用法:
    (1)变量被声明但没有赋值时,就等于 undefined。

    (2)对象的某个属性没有赋值时,该属性的值为 undefined。

    (3)调用函数过程中,应该提供的参数没有提供时,该参数就等于 undefined。

    (4)函数没有返回值时,默认返回 undefined。

js中的null

  1. 描述:
    ① 是 JavaScript 基本类型之一,特指对象的值未设置,是表示缺少的标识,指示变量未指向任何对象,把 null 看为尚未创建的对象,也许更好理解;
    ② 是一个字面量,不像 undefined,它不是全局对象的一个属性;
    ③ 在布尔运算中被认为是 false;
    ④ 与其他任何对象一样永远不会被 JavaScript 隐式赋值给变量。
    注:如果 JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为 false,其他值都视为 true。

  2. 典型用法:
    (1) 作为函数的参数,表示该函数的参数为空。

    (2) 作为对象原型链的终点。

js中undefined和null的区别:
1、相同点

1)都是原始类型的值,且保存在栈中变量本地
2)进行条件判断时,两者都是false:

    console.log(undefined == null);//true ECMAScript认为undefined是null派生出来的,所以定义他们值是相同的

2、不同点

1)null是js的关键字,表示空值;undefined不是js的关键字,它是一个全局变量
2)null是Object的一个特殊值,如果一个Object为null,表示这个对象不是有效对象,null是一个不存在的对象的占位符;undefined是Globel的一个属性

null == undefined    // true
null === undefined     // false

实际上,undefined 值是派生自 null 值的,ECMAScript 标准规定对二者进行相等性测试要返回 true,可以理解为 null 和 undefined 都代表着无效的值,所以二者相等,但由于是两种不同的原始数据类型,所以不全等。
3)类型不一样:
typeof(null) // object
typeof(undefined) //undefined
console.log(typeof(null) === ‘object’)//true
console.log(typeof(undefied) === ‘undefined’)//true

4)在数字运算中被转换为 number 类型的值不同
在 null 上执行算术转换时,确定的值为 0

let a = 10 + null;
console.log(a);    // 10    

undefined 得出的结果为 NaN

let b = 10 + undefined;
console.log(b);    // NaN
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值