前端冷知识(01):JS里的null是什么类型?

简介: 前端冷知识(01):JS里的null是什么类型?

问:因为typeof null === object,所以null是对象?

答:不是。null是Javascript里的一种基本类型,其它几种基本类型还有:string,number,boolean,undefined。而object是引用类型,也称为对象类型。

在Javascript中,不同的数据类型在底层都表示为二进制,比如:

000 - 对象,数据是对象的引用

1 - 整型,数据是31位带符号整数

010 - 双精度类型,数据是双精度数字

100 - 字符串,数据是字符串

110 - 布尔类型,数据是布尔值

二进制的前三位为0会被 typeof 判定为object类型。

而null是一个空值,其二进制表示全是0,自然前三位也是000,所以执行typeof的时候会返回object,产生假象。


Object.prototype.toString.call(null)
'[object Null]'
Object.prototype.toString.call(undefined)
'[object Undefined]'
Object.prototype.toString.call({})
'[object Object]'
Object.prototype.toString.call('abc')
'[object String]'
Object.prototype.toString.call(123)
'[object Number]'
// 注意,这里的Number指类型,需要和内置对象Number区分开。
// 其它几个也类似

所以说,typeof null === object 原来是个语言本身的Bug。

目录
相关文章
|
1天前
|
JavaScript 前端开发 安全
JavaScript数据类型与类型判断
【7月更文挑战第1天】JavaScript基础涉及多种数据类型,如字符串、数字、布尔值、undefined、null、Symbol和BigInt(ES新特性)。对象、数组和函数属于引用类型。类型判断可通过typeof(不准确判断null和Array)、instanceof(检查原型链)和Object.prototype.toString方法。理解这些对编写健壮的代码至关重要。
6 0
|
1天前
|
前端开发 JavaScript API
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(下)
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(下)
|
1天前
|
监控 JavaScript 前端开发
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(上)
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(上)
11 0
|
1天前
|
JavaScript 前端开发 API
JS案例:前端Iframe及Worker通信解决思路
JS案例:前端Iframe及Worker通信解决思路
|
1天前
|
JavaScript 前端开发
JS进阶篇(前端面试题整合)(三)
JS进阶篇(前端面试题整合)(三)
|
1天前
|
前端开发 JavaScript
前端 JS 经典:箭头函数的意义
前端 JS 经典:箭头函数的意义
3 0
|
1天前
|
前端开发 JavaScript
前端 JS 经典:变量交换
前端 JS 经典:变量交换
4 0
|
1天前
|
前端开发 JavaScript
前端 JS 经典:函数签名
前端 JS 经典:函数签名
5 0
|
6天前
|
前端开发 JavaScript 数据库
如何实现前后端分离-----前端笔记
如何实现前后端分离-----前端笔记
|
6天前
|
前端开发 安全 NoSQL
技术笔记:Security前端页面配置
技术笔记:Security前端页面配置