对象在类型转换的时候会调用自身的[[ToPrimitive]]、valueOf、toString函数, 权重 [[ToPrimitive]] > valueOf > toString
let a = { valueOf(){ return 2 }, toString(){ return 3 }, [Symbol.toPrimitive](){ return 4 } }