简介
JavaScript
是一种动态类型语言,变量没有类型限制,可以随时赋予任意值。
转化为数值
使用 Number() 方法强制转换
//数值
Number(324) // 324
//字符串
Number('324') // 324
Number('324abc') // NaN
Number('') // 0
Number('\t\v\r12.34\n') // 12.34
//布尔值
Number(true) // 1
Number(false) // 0
// undefined
Number(undefined) // NaN
// null
Number(null) // 0
// 对象
Number({}) //NaN
使用 parseInt()、parseFloat() 方法转换
详情可见此篇中与数值相关的全局方法详细介绍
使用 ?- 0 方法
null - 0 //0
undefined - 0 //NaN
true - 0 //1
false - 0 //0
'a123' - 0 //NaN
'123a' - 0 //NaN
' 123 ' - 0 //123
{} - 0 //-0
使用 +? 方法
+null //0
+undefined //NaN
+true //1
+false //0
+'a123' //NaN
+' 123 ' //123
+{} //NaN
+{name:1} //NaN
转化为字符串
使用 String() 方法强制转换
String(123) // "123"
String('abc') // "abc"
String(true) // "true"
String(undefined) // "undefined"
String(null) // "null"
String({a: 1}) // "[object Object]"
String([1, 2, 3]) // "1,2,3"
String(['a', 2, 3]) // "a,2,3"
使用 toString() 方法转换
(123).toString() //"123"
(true).toString() //"true"
(false).toString() //"false"
({name:1}).toString() //"[object Object]"
null
和 undefined
无 toString
方法
使用 ? + '' 方法转换
123 + '' //"123"
true + '' //"true"
false + '' //"false"
undefined + '' //"undefined"
null + '' //"null"
{} + '' //0
[]+'' //""
({})+'' //"[object Object]"
({name:1}) + '' //"[object Object]"
转化为布尔值
五个 falsy
值
undefined
null
0
NaN
'' //空字符串
使用 Boolean() 方法强制转换
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
Boolean({}) // true
Boolean([]) // true
// 其余为 true
使用 !!? 方法转换
!!undefined // false
!!null // false
!!0 // false
!!NaN // false
!!'' // false
!!{} // true
!![] // true