JavaScript——数据类型转换

简介

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]"

nullundefinedtoString 方法

使用 ? + '' 方法转换

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容