Brendan Eich在设计JavaScript的时候是没有加入类型系统的,所以JavaScript是一门动态语言,类型是进入执行上下文的时候可能才去确定,这就可能出现一个JavaScript变量在上一瞬间是String,下一瞬间就是Number了,在这个过程中,JavaScript变量进行了类型的转换。使用Javascript进行相等运算时,我们可能会用==,===和Object.is来进行比较两个值是否相等。 使用===时,恒等,严格比较运算符,不做类型转换,类型不同就是不等,NaN与NaN不相等。 使用Object.is()时,其行为与"==="基本一致,不过有两处不同: +0不等于-0。 NaN等于自身。 使用时,不同类型的值也可以被看作相等。这可能会让很多的JavaScript困开发者感到困惑。使用&