一手负、轉(zhuǎn)為字符串
- toString()方法
數(shù)值、字符串姑尺、對(duì)象竟终、布爾;都有toString
方法切蟋;這個(gè)方法唯一能做的就是返回相應(yīng)的字符串统捶;其中null
和undefined
沒有toString()
方法。
- String(x)
String()
屬于強(qiáng)制轉(zhuǎn)換柄粹, null
轉(zhuǎn)換的結(jié)果為null
喘鸟;undefined
轉(zhuǎn)換的結(jié)果為undefined
;其余的如果有toString()
方法驻右,即調(diào)用該方法什黑,返回相應(yīng)的結(jié)果。
- x + ''
還有一種比較“老司機(jī)”的方法堪夭,就是任何數(shù)據(jù)類型直接 +
空字符串''
就行了愕把。如下:
注意拣凹,如果非要將number + string,會(huì)調(diào)用number的toString
方法恨豁,如下
1 + '2' 相當(dāng)于
(1).toString() + '2'
// '12'
二嚣镜、轉(zhuǎn)為布爾
- Boolean()
Boolean
函數(shù)可以將任意類型的值轉(zhuǎn)為布爾值。
它的轉(zhuǎn)換規(guī)則相對(duì)簡(jiǎn)單:除了以下五個(gè)值(5個(gè)falsy值)的轉(zhuǎn)換結(jié)果為false
圣絮,其他的值全部為true
祈惶。
undefined
null
-
-0
或+0
NaN
-
''
(空字符串)
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
所有對(duì)象(包括空對(duì)象)的轉(zhuǎn)換結(jié)果都是true
雕旨,甚至連false對(duì)應(yīng)的布爾對(duì)象new Boolean(false)
也是true
扮匠。
2.!!x
還有一種比較聰明的方法就是通過!
取反,這樣的話兩個(gè)感嘆號(hào)!!
就是負(fù)負(fù)得正凡涩,在一個(gè)數(shù)據(jù)類型前面加上!!
就可以返回它本身的布爾值棒搜。
!true // false
!!true // true
!!1 // true
!!'' // false
!!NaN // false
三、轉(zhuǎn)為數(shù)值
1.Number()
使用Number
函數(shù)活箕,可以將任意類型的值轉(zhuǎn)化成數(shù)值力麸。
Number('1') // 1
- parseInt() (經(jīng)常有人問的)
parseInt()
函數(shù)解析一個(gè)字符串參數(shù),并返回一個(gè)指定基數(shù)的整數(shù) (數(shù)學(xué)系統(tǒng)的基礎(chǔ))育韩。能解析多少就解析多少克蚂,一旦遇到不能解析的字符串,就立馬退出返回結(jié)果筋讨。
parseInt('1',10) // 1
- parseFloat()
parseFloat()
函數(shù)解析一個(gè)字符串參數(shù)并返回一個(gè)浮點(diǎn)數(shù)埃叭。
parseFloat("3.14");
parseFloat("314e-2");
parseFloat("0.0314E+2");
parseFloat("3.14more non-digit characters");
- x - 0 (常用也常見)
一個(gè)比較聰明的方法,也是比較騷的方法悉罕。(既有parseInt()
的功能赤屋,也有parseFloat()
的功能)
'12' - 0 // 12
'1.23' - 0 // 1.23
- +x
通過取正(取它原本的值),來得出數(shù)值壁袄。
+ '1.23' // 1.23
+ '.1' // 0.1
+ '-1' // -1