JS

判断变量数据类型

let a = '1'
a.constructor === String // -> true

判断变量为空

  • 后端不返回数值类型的参数(统一为字符串),前端进行数值计算时通过decimal.js库转换后再进行,同时解决空值判断和浮点运算问题
  • 增加数值0、-0的判断
let a = -0
!a === true // undefined、null、NaN、false、''、0、-0 => true
a === 0 // true

设置对象的自动转换规则

  • 优先使用[Symbol.toPrimitive]方法进行转换,当有该方法时不再调用其它方法。
  • 没有[Symbol.toPrimitive]方法时首先调用valueOf方法,当返回值不是原始类型时再调用toString方法。
  • 两种方式最终返回结果若不是原始类型则会抛错
let a = {
  [Symbol.toPrimitive]() {
    return 2
  },
  valueOf() {
    return 0
  },
  toString() {
    return '1'
  }
}
1 + a // => 3
原文地址:https://www.cnblogs.com/qq3279338858/p/12165870.html