关于程序员:什么是-JavaScript-比较运算符

50次阅读

共计 1890 个字符,预计需要花费 5 分钟才能阅读完成。

本文首发自「慕课网」,想理解更多 IT 干货内容,程序员圈内热闻,欢送关注!

作者 | 慕课网精英讲师 然冬

比拟运算符用于比拟两个表达式的后果。如变量 num 加上变量 offset 是否大于 0,大于就是一个比拟运算符。

比拟运算符还分为相等运算符与关系运算符。

相等运算符:

== 相等
!= 不相等
=== 严格相等
!== 严格不相等
关系运算符:

大于
= 大于等于
< 小于
<= 小于等于
运算符返回的都是布尔值。

运算符左右的值也被称为操作数。

  1. 相等运算符
    相等运算符用于判断运算符左右两边的值是否统一。

很多材料也会把相等称为等于,严格相等被称作严格等于。

1.1 相等
相等运算符在进行比拟的时候,如果两边操作数数据类型不同,则会尝试转换成雷同的类型再进行比拟,如果转换成雷同类型后的值雷同,则返回 true,否则返回 false。

如果比拟的两个操作数是援用类型,则会比拟外部的援用(是否援用同一个内存地址上的值)。

‘3’ == 3; // true
3 == ‘3’; // true

2 == 1; // false

3 + 2 == 5; // true

var obj1 = {a: 1};
obj1 == {a: 1}; //false

var obj2 = obj1;
obj1 == obj2; // true

undefined == null; // true

1 == true; // true
0 == false; // true
代码块 1234567891011121314151617
因为内容比较简单,举荐间接在控制台调试,能够疾速看到后果。

具体的转化规定能够查阅隐式转换章节。

留神:相等会对不同类型的比拟数据进行隐式转换,为了避免误导浏览代码的开发者对转换进行猜想,以及防止一些不可控的问题,大部分开发者会抉择不应用相等。

1.2 不相等
不相等的比拟机制和相等统一,类型雷同间接比拟,不雷同的会尝试转换成雷同类型,碰到援用类型则比拟援用地址是否统一。区别就在于最初返回的后果与相等相同,比拟后果如果不统一,则返回 true,统一则返回 false。

1 != 1; // false
1 != 2; // true

var obj1 = {a: 1};
obj1 != {a: 1}; // true
代码块 12345
1.3 严格相等
严格相等在比拟的时候,碰到两边的操作数类型不同,则会间接返回 false,不会进行类型的转换。

当类型一样时,则比拟等号两边的值是否相等,相等则返回 true,否则返回 false。

1 === ‘1’; // false;

0 === false; // false
代码块 123
严格相等更加严格,程序中应用严格相等能够防止许多不可控的类型转换,特地是当开发者不相熟转换规则时候,应尽可能应用严格相等。

1.4 严格不相等
严格不相等在比拟的时候,如果两边的操作数不相等则返回 true,否则返回 false。其和严格相等一样,不会进行类型转换。

1 !== 1; // false
1 !== 2; // true

1 !== ‘1’; // true
undefined !== null; // true
代码块 12345
留神:在做不相等运算的时候,也应该尽可能抉择严格不相等,起因与倡议应用严格相等统一。

  1. 关系运算符
    2.1 大于
    大于运算符会在左操作数大于右操作数的时候返回 true,否则返回 false。

1 > 2; // false
2 > 2; // false
2 > 1; // true
代码块 123
2.2 大于等于
大于运算符会在左操作数大于等于右操作数的时候返回 true,否则返回 false。

1 >= 2; // false
3 >= 2; // true
2 >= 2; // true
代码块 123
2.3 小于
小于运算符会在左操作数小于右操作数的时候返回 true,否则返回 false。

1 < 2; // true
2 < 2; // false
3 < 2; // false
代码块 123
2.4 小于等于
小于等于运算符会在左操作数小于等于右操作数的时候返回 true,否则返回 false。

1 <= 2; // true
2 <= 2; // true
3 <= 2; // false
代码块 123

  1. 留神点
    3.1 字符串进行比拟
    如果比拟运算符的两侧操作数都为字符串,则碰到中文,会将中文转化成对应的 Unicode 码,碰到英文则转化成对应的 ASCII 码,再对码值进行比拟。

‘a’ > ‘z’; // false
代码块 1
a 的 ASCII 码为 97,z 的 ASCII 码为 122,两者在比拟的时候相当于是 97 > 122,后果就是 false。

如果碰到有多个字符,则会顺次进行比拟。

‘aaaaaz’ > ‘aaaaaaaaa’; // true
代码块 1
两个操作数前五位都是 a,所以第六位能力决定出后果。

  1. 小结
    比拟运算符次要用于比拟两个值的大小关系,特地须要留神的是严格相等与相等的区别。

欢送关注「慕课网」,发现更多 IT 圈优质内容,分享干货常识,帮忙你成为更好的程序员!

正文完
 0