在这里引用一下 [MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/is) 里面的解释: - `Object.is()` 与 `==` 不同。`==` 运算符在判断相等前对两边的变量(如果它们不是同一类型)进行强制转换(这种行为将 `"" == false` 判断为 `true`),而 `Object.is` 不会强制转换两边的值。 - `Object.is()` 与 `===` 也不相同。差别是它们对待有符号的零和 `NaN` 不同,例如,`===` 运算符(也包括 `==` 运算符)将数字 `-0` 和 `+0` 视为相等,而将 `Number.NaN` 与 `NaN` 视为不相等。