比较操作符
本节重点是文章中举的例子以及使用比较操作符的几点。 对于基础不好的同学希望能看完,后面是运算符的使用; 相较于基础好的,看完几个例子就可以了,自行决定。
-
严格比较
- 特点: 值和类型都要相同。
-
转换类型比较
- 特点: 比较前会将操作数转换为原始值,使它们类型相同,再进行比较运算。
比较的特点:
-
对于两个拥有相同字符顺序,相同长度,并且每个字符的位置都匹配的字符串,应该使用严格比较运算符。
-
对于两个数值相同的数字应该使用严格比较运算符,NaN和任何值不相等,包括其自身,正数零等于负数零。
-
对于两个同为true或同为false的布尔操作数,应使用严格比较运算符。
-
不要使用严格比较运算符或比较运算符来比较两个不相等的对象。
-
当比较一个表达式和一个对象时,仅当两个操作数引用相同的对象(指针指向相同对象)。
-
对于Null 和 Undefined 类型而言,应使用严格比较运算符比较其自身,使用比较运算符进行互相比较。
使用比较操作符
标准相等操作符(== and !=) 使用 Abstract Equality Comparison Algorithm 去比较两个操作数。当两个操作数类型不相等时,会在比较前尝试将其转换为相同类型。 对于表达式 5 == ‘5’, 在比较前会先将右边字符串类型的操作数 5 转换为数字。
严格相等操作符 (=== and !==) 使用 Strict Equality Comparison Algorithm 并尝试对两个相同操作数进行相等比较,如果它们的类型不相等,那么永远会返回false 所以5 !== '5'
。
当需要明确操作数的类型和值的时候,或者操作数的确切类型非常重