在js中转换类型有三种情况

  1. 转换为布尔值
  2. 转换为数字
  3. 转换为字符串

四则运算和==、条件运算都会隐式类型转换
加法运算:字符串+数字 优先将数字转为字符串,然后进行拼接;
非加法运算

  • 字符串 - 数字/(变量) 优先将字符串转为数字,然后进行计算

==判断:

  • 首先会判断两者类型是否相同。相同的话就是比值大小了
  • 类型不相同的话,那么就会进行类型转换
  • 会先判断是否在对比 null 和 undefined,是的话就会返回 true
  • 判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number
  • 判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断
  • 判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断

    转换为0

    1. Number()
    2. Number(0)
    3. Number('')
    4. Number('0')
    5. Number(false)
    6. Number(null)
    7. Number([])
    8. Number([0])

    转换为NaN

    1. Number(undefined);
    2. parseInt("");
    3. parseInt(null);
    4. parseInt(undefined);