第五章:表达式和运算符
1. == 和 === 对象、数组和函数的比较是引用,也就是说只有两个变量引用的是同一个对象时,他们才是相等的。 下面的规则用于 === 判定两个值类型是否完全相等 Ø 如果两个值的类型不同,它们就不相同 Ø 如果两个值的类型是数字,而且值相等,那么除非其中一个或两个都是 NaN ,否则它们是相等的 Ø 如果两个值都是字符串,而且在串中同一位置上的字符完全相同,那么它们就完全等同。如果字符串的长度或内容不同,它们就不是等同的。 Ø 如果两个值都是布尔值 true ,或者两个值都是布尔值 false ,那么它们等同 Ø 如果两个值引用的是同一个对象、数组或函数,那么它们完全等同。 Ø 如果两个值都是 null 或者是 undefined ,它们完全相同。 下面的规则用于判定 == 运算符比较的两个值是否相等 Ø 如果两个值具有相同的类型,那么就检测它们的等同性。 Ø 如果两个值的类型不同,它们仍然可能相等。 ² 如果一个值是 null ,另一个值是 undefined ,则相等 ² 如果一个值是数字,另一个是字符串,把字符串转换为数字后进行比较 ² 如果一个值为 true ,将它转换为 1 ,再进行比较,如果一个值为 false ,把它转化为 0 ,再进行比较。 ² 如果一个值是对象,另一个值是数字或字符串,将对象转换成原始类型的值,在进行比较。可以使用对象的 toString()