类型转换

显式转换

原始值 / 转换目标布尔值字符串数字
Number除 0, -0, NaN 都为 true0 => "0"--
String除空字符串外都为 true--NaN / 数字
Boolean--"true" / "false"true => 1
false => 0
UndefinedFalse"undefined"NaN
nullFalse"null"0
SymbolTruelet sym = Symbol(1); => "Symbol(1)"报错
函数Truefunction func(){}; => "function func(){}"NaN
数组True[] => "" ; [1, 2] => "1, 2"首先将数组转换成字符串, 再将字符串转为数字
对象True"[object Object]"NaN

隐式类型转换

  1. 算数运算符 (+、-、*、/ 、++、--、%...)
    • '+'作为一个双目运算符: 若 + 存在一个 字符串, 则将另一个值也转为 字符串 来进行字符串拼接。
    • 其他情况下都将参数转换为 数值 类型进行运算
  2. 关系运算符 (>、<、==、!、!= )
    • ===、!==: 同时比较类型和值。
    • ==、 !=:
      • 只比较值,不比较类型。 引用类型比较引用关系
      • 布尔值数字字符串比较时, 会将本身转换为数字在进行比较
      • NaN 不等于 NaN, Symbol 不等于 Symbol
    • ! : 将其后的变量会表达式转换为 布尔值
    • 字符串比较大小: 会从头开始比较每个字符的 unicode 编码,
    • 其余情况均转为数值类型

结尾小问题:

  1. 结合上面的内容 [] == [] 的输出结果是什么呢?

  2. 上面有提到 双目运算符, 那么在单目符中 var a = 1; a++ 是否== ++a 呢?

    评论区给你你答案 ??

转载于:https://www.cnblogs.com/vant850/p/11495114.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值