js 数据类型分类与判断

简介: js 数据类型分类与判断

目录


前言


记录点js基础,js的类型分类以及判断方法,typeof()的用法问题,以及使用Object.prototype.toString.call()精准判断类型的用法。


js类型


js有许多种内置类型,其中内置类型又分为两类,基本数据类型和对象(Object)类型。

基本数据类型:Null、Undefined、Number、String、Boolean、Symbel、BigInt。(截至2022/2/16,将来或许会引入更多的基本数据类型,就像Symbel、BigInt就是比较新引入的,原来只有五大基本数据类型)

typeof存在的问题


测试基本数据类型:记结论,除了null会被判断为object其他基本类型都可以判断出来,因此不能用于判断null。

console.log(
   typeof null,// object
   typeof 123,//或 Number(123),// number
   typeof undefined,// undefined
   typeof "str",//或 String('str'),// string
   typeof true,//或 Boolean(true)// boolean
   typeof Symbol(1),// symbol
   typeof 12345678910n,//或 BigInt(12345678910),// bigint
 );

测数组、对象、内置对象、new函数声明对象、函数等对象类型:记结论,除了函数会被正确判断为function,其他全是object,因此不能用于判断除了函数之外的复杂的类型,都不能用typeof区分开来。

console.log(
  typeof [],//object
  typeof {},//object
  typeof Math,//object
  typeof new String(),//object
  typeof (() => {}),//function
);

精准判断


  1. 想要精准判断类型,建议使用Object.prototype.toString.call()
 console.log(
   Object.prototype.toString.call(null), //[object Null]
   Object.prototype.toString.call("123"), //[object String]
   Object.prototype.toString.call(123), //[object Number]
   Object.prototype.toString.call(undefined), //[object Undefined]
   Object.prototype.toString.call(true), //[object Boolean]
   Object.prototype.toString.call(Symbol(1)), //[object Symbol]
   Object.prototype.toString.call(BigInt(1)), //[object BigInt]
   Object.prototype.toString.call(() => {}), //[object Function]
   Object.prototype.toString.call([]), //[object Array]
   Object.prototype.toString.call({}), //[object Object]
   Object.prototype.toString.call(Math), //[object Math]
   Object.prototype.toString.call(new String()) //[object String]
 );
相关文章
|
1月前
|
JavaScript
js基础数据类型
js基础数据类型
26 1
|
18天前
|
JavaScript 前端开发
JavaScript基础知识-基本数据类型和引用数据类型
关于JavaScript基础知识的文章,主要介绍了基本数据类型和引用数据类型。
30 2
JavaScript基础知识-基本数据类型和引用数据类型
|
1天前
|
存储 JavaScript 对象存储
js检测数据类型有那些方法
js检测数据类型有那些方法
|
1月前
|
JavaScript 前端开发
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
这篇文章是JavaScript基础与实战教程的第一部分,涵盖了JavaScript的基本语法、标识符、数据类型以及如何进行强制类型转换,通过代码示例介绍了JS的输出语句、编写位置和数据类型转换方法。
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
|
20天前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
70 1
|
28天前
|
JavaScript 前端开发
JS常用数据类型转换(数字型和字符串型之间转换)
JS常用数据类型转换(数字型和字符串型之间转换)
34 2
|
28天前
|
前端开发 JavaScript
Web 前端大揭秘!JS 数据类型检测竟如此震撼,一场惊心动魄的代码探秘之旅等你来!
【8月更文挑战第23天】在Web前端开发中,合理检测数据类型至关重要。JavaScript作为动态类型语言,变量类型可在运行时变化,因此掌握检测技巧十分必要。
22 1
|
28天前
|
存储 前端开发 JavaScript
Web前端的奇幻之旅:探索JS数据类型的奥秘与差异
【8月更文挑战第23天】JavaScript是一种动态类型语言,提供多种内置数据类型支持信息的存储与操作。这些类型对Web前端开发者至关重要,直接影响代码性能与可读性。JavaScript数据类型主要分为两大类:原始数据类型(如Undefined、Null、Boolean等)与引用数据类型(如Object、Array等)。原始类型直接存储值,而引用类型存储指向数据的引用。原始类型不可变且存储在栈中,访问更快;引用类型则存储在堆中,可通过其引用进行修改。理解这些差异有助于编写高效、可维护的代码。
29 0
|
1月前
|
存储 JavaScript 前端开发
JavaScript引用数据类型和构造函数的秘密
JavaScript引用数据类型和构造函数的秘密
|
1月前
|
JavaScript
js基础数据类型
js基础数据类型