任意类型转换为数字
1、Number()函数
此方法较为严格,当全部为数值或者解析为全部数字时才会转换,当出现非数字,或者出现空格时则返回NaN。
//字符串
Number('123') //123
Number('3432f') //NaN 字符串不能被完全解析为数值,返回NaN
//空字符串转为0
Number('') //0
//布尔值
Number(true) // 1
Number(false) // 0
//undefined类型
Number(undefined) // NaN
//null类型
Number(null) // 0
(2)parseInt()方法
parseInt方法将其他类型转换为整数,只取整数部分。返回值只有两种:十进制数和NaN
parseInt('3.14') //3
parseInt(.5)//0
parseInt('a5')//NaN,此时则无法转换
parseInt('a')//NaN,非数字时
parseInt('12a78')//12 只转换当前可以转换部分
(3)parseFloat()方法
解析一个字符串并返回一个浮点数
parseFloat('3.14')
3.14
parseFloat('314e-2')
3.14
parseFloat("0.0314E+2")
3.14
parseFloat("3.14more non-digit characters")
3.14
parseFloat("FF2")
NaN
(4)x - 0 方法
这是一种最简单快捷的方法,字符串减去一个0可以转换成数字
'1'-0
1
's'-0
NaN
'02s'-0
NaN
(5)+ x 方法
在要转换的类型前面加上+可以转换成数字
+ '1'
1
+ '-1'
-1
+ 's'
NaN
+ '1s'
NaN
+ obj
NaN
任意类型转换为字符串
(1)x.toString
(1).toString()
"1"
true.toString()
"true"
var obj={}
(obj).toString()
"[object Object]"
①toString()转换法不适用于null和undefined这两种数据类型,强行使用会报错
②数据类型为object的话,转换为string之后会被表示为[object Object]
(2) String()
String(x)是一个全局函数,功能更强大可以转换基本上所有类型为字符串
String(1)
"1"
String(null)
"null"
String(undefined)
"undefined"
String(true)
"true"
String(obj)
"[object Object]"
(3)加上一个空字符串来转换
最简单最便捷的一种方法,加上一个空字符串就可以快速将其他类型转换成字符串
1 + ''
"1"
null + ''
"null"
undefined + ''
"undefined"
true + ''
"true"
obj + ''
"[object Object]"
任意类型转换为布尔
(3)Boolean(x)
//除了0, NaN, ' ', null, undefined五个值为false,其他的都为true
Boolean(1)
true
Boolean(null)
false
Boolean(undefined)
false
Boolean(obj)
true
Boolean('s')
true
(2)取反两次来转换 !!
对一个值连续做两次取反运算,等于将其转为对应的布尔值,与Boolean函数的作用相同。这是一种常用的类型转换的写法。
!!1
true
!!null
false
!!undefined
false
!!obj
true
!!'s'
true