类型转换从初学 js 时就接触,但一直没能记牢,最近面试吃了大亏,自尊心深受打击,还是好好整理一下吧 🌚
显式转换
Number() 转换规则
Boolean() 转换规则
String() 以及不同对象 toString() 转换规则
隐式转换
== 操作符隐式转换
- 有且仅有一个操作数是 Boolean 会先将 Boolean 转化为 Number (true -> 1, false -> 0)
- 一个操作数是 String 另一个是 Number 会先将 String 转化为 Number
- 有且仅有一个操作数是对象类型则会调用 valueOf()、toString() 进行转化
举 🌰 子
js
+ 号运算符隐式转换
- 若 + 号两侧其中一个为字符串类型,那么会将另一侧也转为字符串类型,然后进行字符串拼接
- 若 + 号两侧其中一个为数字类型,那么会将另一侧也转为数字类型,然后进行计算
- 若 + 号右侧为对象类型,会先将它转化为字符串类型
- 若 + 号左侧声明了一个大括号那种对象,很多情况下 js 引擎会将它认成一个代码块而忽略计算
- 若 + 号左侧没内容,会先将右侧内容转为数字类型
举 🌰 子
js
- 号运算符
- 若 - 号两侧不为数字类型则全转成数字类型后再进行计算
- 若 - 号左侧没内容,会先将右侧内容转为数字类型
举 🌰 子
js
一些注意点
js