JS检测数据类型之typeof
程序员文章站
2024-01-30 10:59:28
...
在JS中有很多的数据类型,比如:基本数据类型:number、string、Boolean、null、undefined、symbol、BigInt,引用数据类型:普通对象、数组、正则、日期、Math、函数等等。那么如果我们想检测那个值得数据类型应该使用什么方法呢?
1.常用的检测数据类型的方法
- typeof [value] 检测数据类型的运算符
- [example] instanceof [class] 检测某一个实例是否属于这个类
- [example]. constructor === [class] 检测实例和类关系的,从而检测数据类型
- Object . prototype . toString . call([value]) 检测数据类型
2.typeof [value]
-
1> 语法:typeof 要检测的值
- 如:typeof 1
-
2> 返回结果:是字符串,字符串中包含了对应的数据类型
- number === ‘number’
- string === ‘string’
- boolean ===‘boolean’
- null ==='null’
- undefined ===‘undefined’
- symbol ===‘symbol’
- BigInt ===‘bigint’
- 普通对象、数组、正则… ===‘object’
- 函数 ===‘function’
-
3> 因为typeof的检测结果返回的是字符串类型的,那么当有两个或者两个以上typeof 时,结果为’string’
- typeof 1 ==‘number’
- typeof typeof 1 == typeof ‘number’ —>‘string’
3.typeof 中特殊的检测结果
- NaN / Infinity 都是数字类型,检测出来的结果是’number’
- typeof null 的结果是 ‘object’ (这个是浏览器的BUG:所有的值在计算机中都以二进制编码存储,浏览器把前三位是000的当做对象,而null的二进制前三位就是000。所以被识别为对象,但是它不是对象,它是空对象指针,是基本数据类型)
- typeof 普通对象/数组对象/正则…结果都是’object’ ,这样就无法基于typeof区分是普通对象还是数组对象等
4.实战应用
在平时项目中,如果我们想要判断传进来的变量是不是对象类型的,那么应该怎么写判断条件
if(typeof x =='object '){...}
//注意这样写是不对的,因为null的检测结果也为'object'
正确写法
if(x!=null && typeof x == 'object'){...}
5.各类型使用typeof在控制台的检测结果截图
上一篇: HTML5设置div标签以及其内容均为居中显示以及添加阴影实例讲解
下一篇: 比较浮点数的正确方法
推荐阅读
-
JS检测数据类型之typeof
-
浅谈js基本数据类型和typeof
-
js学习总结_基于数据类型检测的四种方式(必看)
-
JS基础总结之数据类型、数据_变量_内存和对象实例分析
-
JS中的数据类型的判断(typeof,instanceof,constructor)
-
JS中数据类型的判断( typeof,instanceof,constructor,Object.prototype.toString.call() )
-
如何判断js中的数据类型:typeof、instanceof、 constructor、 prototype方法比较
-
关于js typeof 与 instanceof 判断数据类型区别及开发使用
-
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
-
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】