JavaScript数据类型
数据类型
js中的数据类型分为基本数据类型和引用数据类型
基本数据类型:number string boolean null undefined
引用数据类型:
对象object:Array Object RegExp Math Date String Number
函数Function
number数据类型
包含整数和浮点数。
将其他数据类型转为数字数据类型的方法?
Number():
强制将其他数据类型转为数字类型,当转化值中有一个不是数字的时候,就返回NaN,如果是数字的时候直接返回数字,Number()这个方法的返回值只有数字或NaN。
NaN:not a number 非有效数字
- Number({})
对象数据类型转化为数字的时候,首先会转化为字符串,然后再转化为数字。
第一步 先将括号中的{}转为字符串,调用.toString()方法
第二步 {}.toString() 转为字符串 最终值为"[object Object]"
Number("[object Object]") 最终值是NaN
- Number([])
第一步 [].toString() 转为字符串最终值为 "" (空字符串)
第二步 Number("") 最终值是0
- Number(null) 最终值是0
- Number(undefined) 最终值是NaN
- Number(true) 最终值是1
- Number(false) 最终值是0
console.log(Number(1+1));//2
console.log(Number("1+1"));//NaN
//console.log(Number([1,2]));
//[1,2].toString() -- > "1,2"
//Number("1,2") -- >NaN
Number()中的值如果是
- 字符串的时候,只要字符中有一个值不是数字返回NaN
- 对象的时候,先将对象转为字符串(调用.toString()方法),然后将字符串转为数字
- 布尔的时候,true为1,false 0
- null的时候,为0
- undefined的时候,为NaN
isNaN()
检测一个值不是一个数字,返回值是布尔类型的值,要么是true要么是false,isNaN在验证之前,会先调用Number()方法,然后再去检查Number()方法的返回值。
parseFloat()
将字符串中的值从左向右查找,遇到非数字停止查找,将查找到的结果作为返回值,可以识别小数点
parseInt()
将字符串中的值从左向右查找,遇到非数字停止查找,将查找到的结果作为返回值,只能返回整数
console.log(parseFloat("123.45bc"));//123.45
console.log(parseInt("123.45bc"));//123
console.log(parseInt([]));//NaN
console.log(parseFloat(true));//NaN
console.log(parseFloat(1.2));//1.2
console.log(parseInt(1.2));//1
console.log(parseInt(.2));//0
console.log(parseFloat(.2));//0.2
console.log(parseInt(".2"));// NaN
console.log(parseInt(.2));// 0
console.log(parseFloat(".2"));//0.2
console.log(NaN == NaN);//false
boolean数据类型
布尔是逻辑运算 只有两个值 true 和 false
如果判断一个值是真是假,遵循 0 "" NaN null undefined为假,其余都为真
console.log(null == undefined); //true
console.log(!(NaN == NaN));//true
console.log(!"0");//false
console.log(!!"null");//true
js中数据类型的比较
对象转为布尔值的时候,全部为true
'' 两个值比较是否相等
'=' 绝对比较 只要两边数据类型不同 直接返回false
val1 == val2 如果两个值不是同一个数据类型 就会进行默认数据类型转换
对象 == 对象 永远不相等
对象 == 字符串 将对象通过toString 转化为字符串,再进行比较
对象 == 数字 将对象通过toString() 转化为字符串,然后在转化为数字
数字 == 字符串 字符串转化为数字 再进行比较
数字 == 布尔 将布尔转化为数字(true:1, false:0) 在进行比较
字符串 == 布尔 都转化为数字在进行比较
null和undefind 跟任何其他数据类型都不等
- 上一篇 »JavaScript的数据类型
- 下一篇 »JavaScript基本数据类型——Symbol