typeof null返回值为什么是object?

复制代码
 function isObject(type){
     return (typeof type)=='object'?true:false
    }
   console.log('isObject(null)',isObject(null)) 

是第一版本的JavaScript的问题,使用32位表示一个变量,其中前3位代表值的类型,000 表示对象,010 表示浮点数,100 表示字符串,110 表示布尔值,和其他的值都被认为是指针。,在这种情况下null被解释为000的指针,即被认为是一个空对象引用,因此typeof null的结果为object,属于历史遗留问题

这是 JavaScript 语言的一个历史遗留问题。

因为 null 的类型标签是 000,与 object 的类型标签一样。 所以 typeof null 被判定为 "object"

相关推荐
见叶之秋4 分钟前
C细节补充
c语言·开发语言
她说彩礼65万6 分钟前
C# yeild的使用
开发语言·c#
阿童木写作8 分钟前
Python实现跨境商品详情页自动翻译
开发语言·python·机器翻译
2501_9318037523 分钟前
Go 反射:原理、核心机制与实践指南
开发语言·后端·golang
小则又沐风a28 分钟前
库的原理:目标文件,ELF格式,程序加载
java·linux·前端
江屿风33 分钟前
【C++笔记】List流食般投喂
开发语言·c++·笔记·list
程序员爱钓鱼35 分钟前
Rust if let 与 while let 详解:简化模式匹配
前端·后端·rust
To_OC40 分钟前
LC 79 单词搜索:都说这是回溯入门题,我却连错三回
javascript·算法·leetcode
胡萝卜术1 小时前
从暴力到滑动窗口的终极形态:力扣3「无重复字符的最长子串」的优化进化之路
前端·javascript·面试
钛态9 小时前
前端安全防线:CSRF 攻击链路与双重 Token 校验的工程实现
前端·vue·react·web