數(shù)據(jù)類型轉換
- 轉換成數(shù)值
1、Number()函數(shù)
//字符串不能被完全解析為數(shù)值,返回NaN
Number('3432f') //NaN
//空字符串轉為0
Number('') //0
Number(undefined) // NaN
Number(null) // 0
Number方法的參數(shù)是對象時,將返回NaN,除非是包含單個數(shù)值的數(shù)組。
2、parseInt()
parseInt方法用于將字符串轉為整數(shù)。一個個字符依次轉化,遇到不能轉為數(shù)字的字符,就不再進行下去,返回已經(jīng)轉好的部分。返回值兩種:十進制的整數(shù)或NaN
parseInt('34vb',10) //34
parseInt第二個參數(shù),表示被解析值的進制
3、parseFloat()
parseFloat方法用于將一個字符串轉為浮點數(shù)。
如果參數(shù)不是字符串,或者字符串的第一個字符不能轉化為浮點數(shù),則返回NaN。
parseFloat('4.89va') //4.89
parseFloat([]) // NaN
parseFloat會將空字符串轉為NaN,區(qū)別Number函數(shù)的轉換結果
4、對非數(shù)值類型的值使用一元運算符(即+和-)。
- 轉換為string
1、String()函數(shù)
數(shù)值:轉為相應的字符串。
字符串:轉換后還是原來的值。
布爾值:true轉為字符串"true",false轉為字符串"false"。
undefined:轉為字符串"undefined"。
null:轉為字符串"null"。
復合數(shù)據(jù)類型的轉換結果
String({a: 1}) // "[object Object]"
String([[3,4],['a','b']]) //"3,4,a,b"
2、toString()
var a = 34
a.toString() //"34"
undefined、null不適用,會報錯
3、任何值和字符串相加,返回字符串,所有+''(空字符串),可以完成字符串轉化
- 轉為布爾值
1、Boolean()
Boolean函數(shù)可以將任意類型的值轉為布爾值。
除了以下五個值的轉換結果為false,其他的值全部為true。
undefined、null、-0或+0、NaN、''(空字符串)
2、用兩個取反!!,轉為布爾值