js的数据类型
一 、基本数据类型(原始数据类型)
1、 number
2 、string
3、 null
4、 undefined
5、 boolean
6、symbol (唯一值。 一般用作对象的唯一属性或者一些底层原理)
7、 bigint(大数 超过浏览器的最大或者最小安全的数据 Number.MAX_SAFE_INTEGER最高安全数值。Number.MIN_SAFE_INTEGER 最低安全数值。超过这个范围后计算就不准确 bigInt(Number.MAX_SAFE_INTEGER). ----> 9007199254740991n 如果要进行计算。 则数值要带上n。如9007199254740991n + 1n)
二、复杂数据类型(对象数据类型)
1、标准普通对象。object
2、标准特殊对象 array date math regexp error等
3、非标准特殊对象new(Number/Boolean/String)
4、可调用对象(可以使用call方法)function
三、数据类型检测
1、typeof 只能检测基本数据类型(但null检测为object)对象类型检测都是object(function检测为function)
由于typeof内部调用了一个GetValue方法 【c++的方法】 按照值的二进制存储进行检测
对象 000 ----》 实现call 的则返回function。 没有的则返回object
null 000000。 -----》 所以为object
undefined -2^30.
数字 整数是1 浮点是010
字符串 100
布尔 110
2、instanceof。 本意是检测实例是不是属于哪个类
3、constructor。本意是获取构造函数
4、 Object.prototype.toString.call(value) 检测数据类型
5、Array.isArray(value)检测是否是数组