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]
 );
相关文章
|
2月前
|
存储 JavaScript 对象存储
js检测数据类型有那些方法
js检测数据类型有那些方法
140 59
|
3月前
|
JavaScript
js基础数据类型
js基础数据类型
31 1
|
1月前
|
存储 JavaScript 前端开发
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
JavaScript 数据类型分为基本数据类型和引用数据类型。基本数据类型(如 string、number 等)具有不可变性,按值访问,存储在栈内存中。引用数据类型(如 Object、Array 等)存储在堆内存中,按引用访问,值是可变的。本文深入探讨了这两种数据类型的特性、存储方式、以及检测数据类型的两种常用方法——typeof 和 instanceof,帮助开发者更好地理解 JavaScript 内存模型和类型检测机制。
71 0
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
|
1月前
|
JavaScript 前端开发 开发者
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
22 1
|
1月前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
19 0
|
1月前
|
缓存 JavaScript 前端开发
Node.js模块化的基本概念和分类及使用方法
Node.js模块化的基本概念和分类及使用方法
32 0
|
2月前
|
存储 前端开发 JavaScript
前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)
本文详细介绍了JavaScript中的数据类型,包括基本数据类型(Number、String、Boolean、Undefined、Null)和复杂数据类型(Object),并解释了如何使用`typeof`操作符来识别变量的数据类型。同时,还讨论了对象、函数和数组等复杂数据类型的使用方式。
46 2
|
2月前
|
JavaScript 前端开发
JavaScript基础知识-基本数据类型和引用数据类型
关于JavaScript基础知识的文章,主要介绍了基本数据类型和引用数据类型。
41 2
JavaScript基础知识-基本数据类型和引用数据类型
|
3月前
|
JavaScript 前端开发
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
这篇文章是JavaScript基础与实战教程的第一部分,涵盖了JavaScript的基本语法、标识符、数据类型以及如何进行强制类型转换,通过代码示例介绍了JS的输出语句、编写位置和数据类型转换方法。
JavaScript基础&实战(1)js的基本语法、标识符、数据类型
|
3月前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
356 1