JS中的数据类型
- 基本数据类型
number
string
boolean
null
undefined
symbol
bigint
-引用数据类型
+object
普通对象
数组对象
正则对象
日期对象
Math数学函数对象
+function
数据类型检测
-typeof 监测数据类型的逻辑运算符
-instanceof 检测是否为某个类的实例
-constructor 检测构造函数
-Object.prototype.toString.call检测数据类型
所有的值在内存中都是二进制存储的。
typeof [value]返回当前值的数据类型 “数据类型”
特点
1.返回的结果都是字符串
2.局限性:
+typeof null =>‘object’
+typeof 不能细分对象类型(检测普通对象或者数组对象等都是"object")
NaN属于number类型,但是不是一个数字。NaN和谁都不相等,包括它本身
isNaN(值) 检测这个值是否为有效数字,如果不是有效数字返回True,否则返回False。
把其他数据类型转换为数字的方法:
- 强转换(基于底层机制转换的) Number([value])
- 一些隐式转换都是基于Number完成的
- 先把其他类型转换为数字再检测 如 isNaN(‘12px’)
- 数学运算 如:‘12px’-13
- 字符串==数字 两个等于号比较很多时候也是要把其他值转换为数字
- 一些隐式转换都是基于Number完成的
- 弱转换(基于一些额外的方法转换) parseInt([value])
parseInt(),parseFloat()都是从左到右,遇到非有效数字就停止查找
->如果处理的值不是字符串,需要先转换为字符串再开始查找。
number直接调用浏览器最底层的数据类型检测机制- true 1 false 0
- null 0 undefined NaN
- 字符串必须保证都是有效数字才会转换数字,否则都是NaN