数据类型转换

数据类型转换分为强制数据类型转换(显式转换)自动转换(隐式转换)

(1)强制转换

主要是使用Number、String和Boolean三个构造函数,手动将各种类型的值,转换成数字、字符串或者布尔值。

Number()

// 数值:转换后还是原来的值
Number(324) // 324
// 字符串:如果可以被解析为数值,则转换为相应的数值
Number('324') // 324
// 布尔值:true 转成1,false 转成0
Number(true) // 1
Number(false) // 0

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"

Boolean()

除了以下六个值的转换结果为false,其他的值全部为true。

undefined
null
-0
0或+0
NaN
''(空字符串)
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false

(2)自动转换

遇到以下三种情况时,JavaScript会自动转换数据类型,即转换是自动完成的,对用户不可见。

// 1. 不同类型的数据互相运算
123 + 'abc' // "123abc"

// 2. 对非布尔值类型的数据求布尔值
if ('abc') {
  console.log('hello')
}  // "hello"

// 3. 对非数值类型的数据使用一元运算符(即“+”和“-”)
+ {foo: 'bar'} // NaN
- [1, 2, 3] // NaN
posted @ 2017-01-18 13:36  叶子陪你玩  阅读(162)  评论(0编辑  收藏  举报