>、>=、<、<=、==、===、 !=、!==

比较运算符是对运算符的坐标和右边的两个数据进行比较。

  • 如果两个都是数字,就是普通的数字比较。

  • 如果有一个是数字,就把另外一个不是数字的使用Number(var)的方式转换为数字再比较

  • 如果两个都是字符串,则比较的是字符串中的字符在字母表中的顺序。(或者说比较是他们的编码值)

  • 如果有一个是NaN,则结果一定是false。

  • 但是有一种情况,如果比较特殊NaN != NaN则是true


特殊说明:

一. == 是判断两个操作数是否相等

他判断相等不是单纯的判断, 会进行适当的转换.

  • 如果两个都是Number类型,就是数学上的是否相等.

  • 如果两边的类型不一致, 则都转换成Number之后再比较.

  • 如果有一个NaN参与比较,则总是不等的。

  • nullundefined之间是相等.

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

注意:

  • !== 这个是不全等判断, 和===的结果正好相反.

Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-10-18 03:19:29

results matching ""

    No results matching ""