十二、类型转换
12.1 Number()
Number()
函数可以将任何其他类型的值,变为数字值
对于字符串,只有纯数字字符串能够成功变为数字类型:
1 | Number(“23”) // 23 |
只要是字符串不纯,都是NaN
:
1 | Number(“5年”) //NaN |
布尔类型true
是1
, false
是0
:
1 | Number(true) // 1 |
对于undefined
, Number()
转的结果是NaN
:
undefined
属于undefined
类型,undefined
类型只有它一个值undefined
。
1 | Number(undefined) //NaN |
12.2 String()
注意,大写S
,用来将其他类型的值,变为字符串
将其他类型的值放里面,出来的结果就是加上引号的字符串
1 | String(8) // “8” |
12.3 Boolean()
将其他类型的值转为布尔类型
数字类型值,只有0
和NaN
会被转为false
,其余一律是true
1 | Boolean(0) // false |
字符串类型值,非空字符串就是true
,空字符串就是false
1 | Boolean(“”) // false |
## 12.4 表达式综合求值
先学习一个知识,就是各种运算的优先级:
非—>数学运算(先自增自减,然后乘除取余,然后加减)—>关系运算符(大于小于)—>逻辑运算(先与后或)
然后注意,遇见数学运算,参与运算的要用Number()
进行“隐式转换”(偷偷转换类型);遇见逻辑运算,使用短路语法。
- 题目1:
1 | 8 + false > !true && “哈哈” |
- 题目2:
1 | ”” || 8 > false && !undefined + 2 |
- 题目3:
1 | 8 + false > “我” * “你” || false |