关系运算符
在js中,可以对任意类型使用关系运算符
> >= < <=
- 进行大小的比较,返回值为布尔值
数值型数据
1.8>1.11 //true
0.8%<0.11% //false
非数值型数据
"a" > "b"//false
"a" > "A"//true
"c">"b"//true
"ac" > "ab"//true
"ac" > "abc"//true
"abc" > "ab"//true
11>"10"//true
- 如果是字符串之间的比较。逐个比较对应位置上的字符的Uncode码值。 一旦一方的字符大于或者小于了另外一方,就作为整个比较的结果,不在继续比较后续的字符。
- 如果,参与比较的数据中有非字符串型数据,那么就将所有的数据隐式转换为Number类型,再作比较。
关系运算符
==: 等于。用于比较两个操作数是否相等的。相等为true,否则为false。
!=: 不等于。
===:绝对等于。用于比较两个操作数是否相等的。相等为true,否则为false。
!==:绝对不等于。
== 与 !=
==比较规则:
- 如果类型相同,那么就比较值,值相同返回true,值不同返回false。
- 如果类型不同,那么就隐式转换为Number。然后再比较值。相同返回true,值不同返回false。
!=比较规则:
== 返回true的,它返回false。 == 返回false的,它返回true
console.log ("1" == 1);//true
console.log (true == 1);//true
console.log (null == 0);//false !!!
console.log (null == undefined);//true
console.log (false == 0);//true
console.log ("true" == true);//false
console.log (Number("true"));//NaN
console.log (" 123" == 123);//true
注意:null 和 undefined 进行 == 比较的时候,不进行类型转换。
=== 与 !==
===比较规则:
先比较两个操作数的类型,如果类型不同,直接返回false。 如果类型相同,然后再比较内容,内容不同,返回false。内容相同返回true。
!==比较规则:
=== 返回true的,它返回false。 === 返回false的,它返回true
console.log ("1" === 1);//false
console.log (true === 1);//false
console.log (true === true);//true
console.log (1 === 1);//true