前言
只要你做过项目,肯定涉及到了数据类型转换.
数据类型转换大致分为3个类型:
转化为布尔值
转化为字符串
转化为数字
我们从这3个类型结合项目经常使用的点去讲解
布尔值
== === Boolean && ||
Boolean
Boolean(x),当x的内容是null,undefined,NaN,0,false,''时转化为false,其余类型转化为true
==
比较返回的是布尔值,但是会先对两边的数据进行转化,转化为同一类型的数据进行比较,在决定返回false还是true.
实际开发中我们常用的比较都类似1==‘1’这种基本类型比较,或者是对象类型比较,对象类型因为引用地址不同,结果为false
===
===比较返回的是布尔值,并且两边的数据不进行转化,直接比较
&&
a&&b实际上也会进行布尔转化去判断是否执行后面的内容
a为ture会执行b的计算并返回b,a为false不会执行b的计算并返回a的内容
||
a || b会进行布尔转化去判断是否执行b和要返回的内容
a为ture不会执行b的计算并返回a
a为false会执行b,并返回b
字符串
- String toString
+
项目开发中经常遇到基本数据类型++'字符串'
var a={
b:1
}
a.b+'1'//'11'
String
let a=new String(1)//比较少用
let a='1'//用得多
toString()
对象类型转化为基本类型用的多
var arr=[1,2,3];
arr.toString()//'1,2,3'
数字
Number 除了+外的运算符 parseInt() parseFloat()
运算符
除了+外的运算只要一方是数字就会转化为数字
项目中经常用到
var a='11'
a-0;//转化为数字
Number
转换的内容包含非数字的时候,Number() 会返回NaN(Not a Number)
parseInt
parseInt() 要看情况,如果以数字开头,就会返回开头的合法数字部分,如果以非数字开头,则返回NaN
parseFloat()
parseFloat() 只解析十进制,返回能够组成合法数字的连贯的内容