对平常的小知识点,会持续更新
==
对比
特殊原则
- undefined == null / null == undefined
- number 和 string/boolean 对比将 string/boolean 转换为数字类型
- boolean 和 string 对比 将字符串转换为数字
- String/Number/Symbol 和object 相比 , toPrimitive(obj) 之后对比
- 其他都为
false
ToPrimitive
是js将对象转换为原始类型的一个算法,是js内部的算法
hint
该函数的参数值为 string/numer/default
自定义 toPrimitive
var obj2 = { [Symbol.toPrimitive](hint) { if (hint == "number") { return 10; } if (hint == "string") { return "hello"; } return true; }};console.log(+obj2); // 10 -- hint is "number"console.log(`${obj2}`); // "hello" -- hint is "string"console.log(obj2 + ""); // "true" -- hint is "default"
toPrimitive参考
(持续更新)