>、>=、<、<=、==、===、 !=、!==
比较运算符是对运算符的坐标和右边的两个数据进行比较。
如果两个都是数字,就是普通的数字比较。
如果有一个是数字,就把另外一个不是数字的使用
Number(var)
的方式转换为数字再比较如果两个都是字符串,则比较的是字符串中的字符在字母表中的顺序。(或者说比较是他们的编码值)
如果有一个是NaN,则结果一定是false。
但是有一种情况,如果比较特殊
NaN != NaN
则是true
。
特殊说明:
一. ==
是判断两个操作数是否相等
他判断相等不是单纯的判断, 会进行适当的转换.
如果两个都是
Number
类型,就是数学上的是否相等.如果两边的类型不一致, 则都转换成
Number
之后再比较.如果有一个
NaN
参与比较,则总是不等的。null
和undefined
之间是相等.
alert(NaN == false); // fasle
alert(NaN == true); // false
alert(NaN == 1); //false;
alert(NaN == NaN); // fasle
alert(NaN != NaN); // true
alert(null == null); // true
alert(null == undefined); // true
alert(undefined == undefined); // true
alert("1" == 1); //true
alert("1a" == 1); //false “1a"会被转换为NaN
alert(1 == true); //true 会把true转成1之后再比较
alert(0 == null); //false null与任何的非null的都不相等
说明:
!=
这个是不等判断, 和==
的结果正好相反.
二. ===
全等
全等在转换前不做任何的转换,如果两个一样就相等,否则就不等.
如果类型不一样, 直接就不等了.
alert("1" === 1); //false 一个string类型,一个number类型,所以不等
alert(null === undefined); // false
alert("abc" === "abc"); // true
注意:
!==
这个是不全等判断, 和===
的结果正好相反.