基本数据类型
- number
- string
- boolean
- null
- Bigint
- symbol(ES6新增唯一值类型)
- undefined
引用数据类型
- 对象数据类型object
- 普通对象{}
- 数组对象[]
- 正则对象/^d+$/
- 日期对象 new Date
- 数学函数对象 Math
- 实例对象 (面向对象)
- 函数数据类型function
number数据类型
分类:负数、0、正数、小数、NaN、Infinity
console.log(NaN==NaN);//false NaN和任何值都不相等,包括自己本身
检测一个值是否是有效数字:isNaN() 返回的是boolean类型 在进行检测的时候,如果检测的值不是数字类型,那么先将值转化为number类型 Number() 使用场合①==比较②数学运算③isNaN④
Number([value]);//Number是内置的转换方法,是把其他数据类型强制转换为数字类型
//字符串转换为数字
console.log(Number("12"));//=>12
console.log(Number("12px"));//NaN 字符串中一旦有非有效数字字符 则结果为NaN
//布尔类型转换为数字
console.log(Number("false"));//0
console.log(Number("true"));//1
//null 和undefined
console.log(Number(null));//0
console.log(Number(undefined));//NaN
//不能把symbol转换为number类型
//对象转换为数字(除了数组、普通对象,其他的都会转换为NaN)
//对象转换数字先要转换为字符串然后再转换为数字
let obj = {x:100};
console.log(Number(obj));//=>NaN "[object,object]"=>Number("[object,object]")=>NaN
let arr = [10];
console.log(Number(arr));//=>10 "10"=>Number("10")=>10
let ary = [10,20];
console.log(Number(ary));//=>NaN "10,20"=>Number("10,20")=>NaN
let arry =[];
console.log(Number(arry));//=>0 ""=>Number("")=>0
//函数转换为number都是NaN
parseInt parseFloat 就是针对字符串,把字符串转换为数字 如果不是字符串则先转换为字符串。 规则:从字符串的左边开始找,一旦遇到非有效数字则停止查找,parseInt和parseFloat区别在于识别小数点
扩展
3.1415926.toFixed(2);//保留几位小数
console.log(Number.MAX_SAFE_INTEGER);//JS中能识别的最大安全数