前端面试宝典 每日一题(14)关于null 和 undefined 以及 typeof null 、typeof NaN的一些思考

🧑🏻‍写在前面的话:
这个系列文章可能开始,有人会觉得很low,我是打算从H5先开始整理,最后到常见的前端框架、以及一些前端常见的算法、leetcode的一些算法解析,感兴趣的小伙伴可以持续关注,每天分享一个前端知识点,希望大家一起进步。

这篇文章主要给大家介绍一下JS最常见的两个数据类型null 和 undefined 的区别,以及typeof null 、typeof NaN的区别

1.关于null 和 undefined 的一些思考

  • 首先 Undefined 和 Null 都是基本数据类型,undefined 代表的含义是未定义,null代表的含义是空对象。
  • 一般变量声明了但还没有定义的时候会返回undefined,null主要用于赋值给一些可能会返回对象的变量,作为初始化。
  • undefined 在 JavaScript 中不是一个保留字,
  • 当对这两种类型使用 typeof 进行判断时,Null 类型化会返回“object”。
  • 当使用双等号对两种类型的值进行比较时会返回 true三个等号时会返回 false。

2.typeof null 、typeof NaN的一些思考

从运行结果中我们能够清晰的看到 typeof null 的结果是Object、typeof NaN 是Number,

在这里插入图片描述

下面我们来探究一下他们的主要形成这样的主要原因:

首先是关于 typeof null 的一些解析:

在 JavaScript 第一个版本中,所有值都存储在 32 位的单元中,每个单元包含一个小的 类型标签(1-3 bits) 以及当前要存储值的真实数据。类型标签存储在每个单元的低位中,共有五种数据类型:
000: object - 当前存储的数据指向一个对象。
1: int - 当前存储的数据是一个 31 位的有符号整数。
010: double - 当前存储的数据指向一个双精度的浮点数。
100: string - 当前存储的数据指向一个字符串。
110: boolean - 当前存储的数据是布尔值。
null 的值是机器码 NULL 指针(null 指针的值全是 0),所以null和Object的类型标签一样,会被判定为Object。

其次是关于typeof NaN 的一些解析:
NaN 是用于指出数字类型中的错误情况,即数学运算没有成功,失败后返回的结果,他是数字的一种特殊情况,所以在使用typeof 判定的时候会返回Number

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值