你想要知道的null 与undefined的异同有哪些?

       在javascript的数据类型中,有两个特殊的数据类型null和undfined,这种我们经常会遇到,比如后端接口的返回,很多时候没有值的字段就是返回的null,但是在ES6前,我们都用的var定义变量没有赋予初始值的时候,该变量是可以使用的,此时它的值默认就是undefined。然而这两个常用的变量,我们在做一些条件判断或者使用的时候需要做一些区分。那它们之间到底有什么区别呢?

一、相同的地方

          1、它们JavaScript中的特殊值(特殊的数据类型),表示没有值的状态

          2、它们都是JavaScript中的关键字

二、null和undefined定义

      1、null

          表示变量已声明,但赋予初始值为空。即它是一个关键字,表示变量被明确地赋值为“空”。当一个变量被赋值为null时,它的值被认为是空的,不属于任何数据类型

      2、undefined

           表示变量已声明,但未初始化。即表示一个变量已被声明,但还没有被赋值。当一个变量没有被明确赋值时,默认初始值是undefined。它是一个全局变量,其值在脚本的任何地方都是可用的。可将undefined视为一个预定义的值,表示未定义的变量

简而言之,null明确表示变量为空,而undefined表示变量没有被赋值。

三、null和undefined的由来

    1、 null

           它最早是由C语言中的空指针演化而来。在JavaScript中,null是一个原始值,表示变量或属性的空值。当一个变量或属性被赋值为null,就表示它不指向任何有效的对象或值。

    2、undefined

        在JavaScript中,当声明一个变量但没有给它赋值时,此时如果需要使用这个变量,但是又需要一种状态去表示它,所以给其定义undefined。undefined也是一个原始值,表示不存在的值。

四、判断类型方法

      1、typeof

尽管null被认为是一个特殊的对象类型,在JavaScript中它被赋予了自己的数据类型 - null。而undefined则表示一个未定义的值。

      注意:typeof null返回的是"object",这是一个历史遗留问题,并不是null的真实类型。因此,在判断一个变量是否为null时,最好使用严格相等操作符(===)来进行判断

    2、===

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值