当前位置: 首页 > news >正文

js类型检测

js数据类型 7 + 1

  1. number
  2. string
  3. boolean
  4. null
  5. undefined
  6. symbol
  7. bigint
  8. object

typeof

  1. typeof 1 // ‘number’
  2. typeof ‘1’ // ‘string’
  3. typeof undefined // ‘undefined’
  4. typeof true // ‘boolean’
  5. typeof Symbol() // ‘symbol’
  6. typeof b // b 没有声明,但是还会显示 undefined
  7. typeof 对于对象,除了函数都会显示 object
  8. typeof [] // ‘object’
  9. typeof {} // ‘object’
  10. typeof /1/ // ‘object’
  11. typeof function(){} // ‘function’
  12. 对于 null 来说,虽然它是基本类型,但是会显示 object ,这是⼀个存在
  13. 很久了的 Bug
  14. typeof null // ‘object’

instanceof

instanceof 可以正确的判断对象的类型,因为内部机制是通过判断对象的
原型链中是不是能找到类型的 prototype

toString

可以通过 Object.prototype.toString.call(xx) 。这样我们就可以获得类似 [object Type] 的字符串。

null和undefined区别?

  1. Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。用法
  2. 变量被声明了,但没有赋值时,就等于undefined。
  3. 调用函数时,应该提供的参数没有提供,该参数等于undefined。
  4. 对象没有赋值的属性,该属性的值为undefined。
  5. 函数没有返回值时,默认返回undefined。
  6. Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。用法作为函数的参数,表示该函数的参数不是对象。作为对象原型链的终点

null不是对象

虽然 typeof null 会输出 object,但是这只是 JS 存在的一个悠久 Bug。在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象,然而 null 表示为全零,所以将它错误的判断为 object 。

相关文章:

  • 微服务网关Gateway实践总结
  • python学生成绩管理系统 毕业设计-附源码061011
  • springboot财务管理系统毕业设计-附源码061533
  • STM32与DS18B20数字温度传感器寄生供电方式的新方案与1-wire总线程序设计
  • python+nodejs+vue大学生心理健康测评管理系统
  • springboot呼伦贝尔旅游网站的设计与实现毕业设计源码091833
  • 基于Springboot超市管理系统毕业设计-附源码231443
  • SSM汽车订票系统毕业设计-附源码061801
  • springboot农村饮用水海量数据存储平台毕业设计-附源码061205
  • 【数学分析笔记03】上确界和下确界
  • HarmonyOS鸿蒙学习笔记(9)Navigator组件实现页面路由跳转
  • php遵义旅游管理系统毕业设计源码091801
  • Java常量初始化后不会再去重新获取
  • 3月编程排行榜来了~有哪些新看点?
  • jeecg-boot开发环境和快速入门
  • [译] React v16.8: 含有Hooks的版本
  • [译]如何构建服务器端web组件,为何要构建?
  • “大数据应用场景”之隔壁老王(连载四)
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Apache Pulsar 2.1 重磅发布
  • Bootstrap JS插件Alert源码分析
  • express如何解决request entity too large问题
  • HashMap剖析之内部结构
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript创建对象的四种方式
  • JavaWeb(学习笔记二)
  • Mac转Windows的拯救指南
  • Vultr 教程目录
  • 初识MongoDB分片
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 构建二叉树进行数值数组的去重及优化
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • $(function(){})与(function($){....})(jQuery)的区别
  • (1)(1.9) MSP (version 4.2)
  • (2015)JS ES6 必知的十个 特性
  • (33)STM32——485实验笔记
  • (4)(4.6) Triducer
  • (ZT)薛涌:谈贫说富
  • (八)Flask之app.route装饰器函数的参数
  • (五)关系数据库标准语言SQL
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET开源项目介绍及资源推荐:数据持久层
  • @NestedConfigurationProperty 注解用法
  • [ solr入门 ] - 利用solrJ进行检索
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [APIO2012] 派遣 dispatching