JS中的数据类型转换可以分为,显示类型转换和隐式类型转换
在JS中类型转化总共有3种模式 toboolean() tonumber() tostring()
数据类型的转换可以分为简单数据类型的转换以及复杂数据类型的转换,这两者的转换方法不同,但转换的最终格式相同
简单数据类型的转化
1. tostring()
可以调用String() 方法转化为string类型
1.toString() // '1'
String(1) //1
String(null) //'null'
String(undefined) //'undefined'
用+连接,只要有一个字符串类型,就会转换为字符串
''+3 //'3'
1+'23' // '123'
2.tonumber()
Number('1')//1
parseInt('1.1') //1
Number('')//0
parseInt('') //NAN
3. toboolean()
if(''){
}
//if语句
!1 //取非
nan,null,undefined,'',0,false 转化为布尔值为false,其余的都是true
在进行比较时,除了两边都是字符串的情况,会比较字符串的编码,其余情况都是转化为数值来进行比较
复杂数据类型的转化
1. 在对对象性进行转化的时候,首先调用对象的valueof方法,基本上返回值就是本身,,然后调用toString()返回,直到返回基本类型的值进行比较
通过一些实例题目来比较一下
true + false //1
12 / "6" //2
"number" + 15 + 3 // 'number153'
15 + 3 + "number" // '18number'
[1] > null //true
"foo" + + "bar" //'fooNaN'
"true" == true // false
false == "false" // true
null == "" //true
!!"false" == !!"true" //ture
["x"] == "x" //true
[] + null + 1 //'null1'
[1,2,3] == [1,2,3] //true
{} + [] + {} + [1] //'0[object,object]1'
! + [] + [] + ![] // 'truefalse'
new Date(0) - 0 //0
new Date(0) + 0