一、 引子
先上题,得出心中答案,打开浏览器点开 F12,复制下面代码,看看结果。
console.log( [] == ![] )
console.log( {} == !{} )
剖析一下,主要分为:
- ! 逻辑运算符的优先级,
- {} 与 [] 复杂数据类型如何转换;
- == JS 的数据类型的强制转换比较;
二、 逻辑运算符的优先级
运算符优先级本身是一种规则,该规则在计算表达式时控制运算符执行的顺序。具有较高优先级的运算符先于较低优先级的运算符执行。
先看 MDN 运算符优先级图表截取: