1. 隐式类型转换
在隐式类型转换中,JS 引擎自动地将一种数据类型转换为另一种类型,通常发生在运算或比较的过程中。这种转换是隐式的,开发者不需要明确地进行操作,而是由 JS 引擎在必要的时候自动完成。let toStr = 1 + ''
2. 显式类型转换
显式类型转换是由开发者明确指定的类型转换,通过调用相应的转换函数或使用一些特定的语法进行。这种转换是开发者有意识地进行的,用于确保数据在特定上下文中具有期望的类型。常用的有Number()
, String()
…
对象转数字:NaN
对象转布尔值:true
对象转字符串:'[object Object]'
例题:[] == ![]
结果为什么为true
?
答:!操作符优先级最高,所以需要先将[]转换为布尔值,再对其进行取反,[]转化为布尔值为true(所有对象都是true),所以![] 为false
布尔值和对象进行运算需要进行隐式转换,将两边都转化为数字进行比较,左边先转换为字符串’',再转换为数字0,右边false转为数字为0