Open
Description
类型转换
- 显示类型转换
- 隐式类型转换
1、显示类型转换
原始包装类显示转换
- 转换布尔值:Boolean
- 转换字符串:String
- 转换数字:Number
内置函数显示转换
- 转换字符串:toString
- 转换整数:parseInt
- 转换浮点数:parseFloat
2、隐式类型转换
1)字符串和数字转换:
- + 操作符,如果有一个为字符串,那么都转化到字符串然后执行字符串拼接
// demo
's'+1 => 's1'
- - 操作符,如果有一个为字符串、布尔值、null、undefined,先转为数字,再执行减法运算;
如果有一个是对象则调用valueOf()取得其数值,再执行减法运算。
// demo
'1'-1 => 0
2)布尔值转换数字:
- 1 + true = 2
- 1 + false = 1
3)转换为布尔值:
- if中的条件判断表达式
- for语句的条件判断表达式(第二个)
- while
- 宽松相等和三目运算符
- || (逻辑或) && (逻辑与)
4)对象转原始类型
- 优先调用 Symbol. toPrimitive (可重写)
- 需要转String类型,调用 toString
- 需要转Number类型,调用 valueOf
- 没有明确倾向,先调valueOf;未有结果调 toString
let obj = {
valueOf() {
return 0
},
toString() {
return 'string'
},
[Symbol.toPrimitive]() {
return 2
}
}
1 + obj // => 3
假值列表
- null
- undefined
- ''
- false
- 0
- NaN
Metadata
Assignees
Labels
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity