任意类型转字符串

String(x)

该方法可用于任何类型的数字,字母,变量,表达式。

String(1)
// "1"
String(true) 
// "true"
String(null) 
// "null"
String(undefined) 
// "undefined"
String({}) 
// "[object Object]"

x.toString()

除了 nullundefined 之外,其他的类型(数值,布尔,字符串,对象)都有此方法,它返回相应值的字符串表现(并不修改原变量)。

(1).toString()
// "1"
true.toString()
// "true"
null.toString()
// Uncaught TypeError: Cannot read property 'toString' of null
    at <anonymous>:1:6
undefined.toString()
// Uncaught TypeError: Cannot read property 'toString' of undefined
    at <anonymous>:1:11
{}.toString()
// "[object Object]"

x + ‘’

使用加法运算符配合一个空字符串可以把任意值转换为字符串。

1 + ''
// '1'
true + ''
// 'true'
null + ''
// 'null'
undefined + ''
// 'undefined'
{} + ''
// 0
var o ={}
o + ''
// [object Object]

任意类型转数字

Number(x)

使用 Number() 函数,可以将任意类型的值转化成数值。

Number("123")
// 123
Number('324abc') 
// NaN
Number('') 
// 0
Number(true)
// 1
Number(false)     
//  0
Number(null)
// 0
Number(undefined)
// NaN
Number({})
// NaN

parseInt(x, 10)

parseInt() 函数可解析一个字符串,并返回一个整数。

parseInt(null, 10)
// NaN
parseInt(undefined, 10)
// NaN
parseInt("a", 10)
// NaN
parseInt("123", 10)
// 123
parseInt("123.123", 10)
// 123
parseInt(true, 10)
// NaN
parseInt({}, 10)
// NaN

parseFloat(x)

parseFloat() 函数可解析一个字符串,并返回一个浮点数。

parseFloat(null)
// NaN
parseFloat(undefined)
// NaN
parseFloat("123")
// 123
parseFloat("123.123")
// 123.123
parseFloat({})
// NaN
parseFloat(true)
// NaN

x - 0

'1'-0
// 1
null-0
// 0
undefined-0
// NaN
{}-0
// -0
true-0
// 1
false-0
// 0
'10.5'-0
// 10.5

+x

+true
// 1
+false
// 0
+'100.5'
// 100.5
+{}
// NaN
+null
// 0
+undefined
// NaN

x/1

2/1
// 2
'2.5'/1
// 2.5
undefined/1
// NaN
null/1
// 0
({})/1
// NaN

x*1

2*1
// 2
'2.5'*1
// 2.5
undefined*1
// NaN
null*1
// 0
({})*1
// NaN

任意类型转布尔

Boolean(x)

Boolean 函数可以将任意类型的值转为布尔值。

Boolean('x')
// true
Boolean(null)
// false
Boolean(undefined)
// false
Boolean(0)
// false
Boolean(2)
// true
Boolean({})
// true
Boolean(NaN) 
// false
Boolean('') 
// false

!!x

!!1
// true
!!0
// false
!!1
// true
!!null
// false
!!undefined
// false
!!{}
// true

Falsy

falsy 是在 Boolean 上下文中认定可转换为 false 的值。

使用 Boolean() 方法可以强制转换任意值为 boolean 类型,除了以下几个值,其他都是自动转为 true

  • false

  • null

  • undefined

  • 0

  • NaN

  • ''

  • ""

  • document.all