王晨旭的个人网站

运算符

运算符是程序中最重要的一部分,每个程序都有大量运算符组成,这一章节将会简单介绍部分常用运算符,具体请参考运算符章节

基本赋值运算符

赋值运算符是最常用的运算符之一,没有赋值就等于没有程序,程序在执行过程中,大量中间的量需要通过赋值的形式暂时存储在内存中。

让我们先来看几行程序

var a, b;

a = 7;
b = a;
a = 6;

上面的语句的意思是:

  • a中存储的值为7,现在a的值就是7
  • b中存储的值为a中存储的值,现在b的值也变成了7
  • a中存储的值为6,现在a的值就是6,但是b的值仍然是7

变量ab就相当于两张纸,每次给变量赋值的时候,就相当于往纸上写东西,只不过每次往变量这种纸上写东西之前都回先把原来的值擦去。

四则运算

除了赋值,JavaScript中最常用的就是四则运算了,例如:

var a, b, c, d, e;

a = -1 + 2;
b = 9 - -8;
c = 20 * 3;
d = 5 / 2;
e = b + (2 + a) * c;

正如我们数学中对四则运算的定义一样,上面代码执行后,五个变量的结果分别是:117602.5,,197`。

注意

JavaScript中,乘号×写作*,除号÷写作/

注意

对于加法,如果两个运算量中有一个是字符串,将不按照数学的加法进行运算,具体请参考运算符章节

注意

在部分编程语言中,整数相除得到的是舍去小数部分的整数,但在JavaScript中就是直接相除,所以5 / 22.5,而不是2

比较运算符与等性运算符

比较运算符指的是大于(>)、小于(<)、大于等于(>=)、小于等于(<=);等性运算符有等于(==)、不等于(!=),全等(===)、不全等(!==)。

注意

JavaScript中,大于等于写作>=,小于等于写作<=,等于写作=====,不等于写作!=!==

=====的区别在于==会忽略类型进行比较,但===比较的前提是类型相同否则一定为false。对于数字而言,这两个运算符是等价的。

注意

这样的表述并不够严格,但对于初学者可以暂时这样理解。具体请参考运算符章节

!=!==都是表示不相等的意思,但是还是有细微区别,就类似=====的区别。对于初学者而言,看到!=!==这两个运算符,可以先去做=====运算(!=时,做==运算;!==时,做===运算),如果=====的结果为true,则!=!==的结果就是false,反之,如果=====的结果为false,则!=!==的结果就是true

正如数学中,这些运算符可以用来比较两个数字的大小,例如:

1 > 2; //结果是:false
1 >= 1; //结果是:true
1 < 2; //结果是:true
1 <= 2; //结果是:true
1 == 1; //结果是:true
1 != 1; //结果是:false
1 == 2; //结果是:false
1 != 2; //结果是:true

注意

如果比较的内容不是数字,将会另有比较规则。具体请参考运算符章节

表示“并且”“或者”“不是”的运算符

我们常常表示在多个条件成立或者部分条件成立的话,做什么,这时候就需要表示“并且”“或者”“不是”的运算符。在JavaScript中,表示“并且”“或者”“不是”的运算符,分别是逻辑与(&&),逻辑或(||),逻辑非(!)。先来看几行代码:

true && true; //结果是:true
true && false; //结果是:false
false && false; //结果是:false

true || true; //结果是:true
true || false; //结果是:true
false || false; //结果是:false

!true; //结果是:false
!false; //结果是:true

注意

如果想表示a < x < b,在JavaScript中,只能使用a < x && x < b表示(当然,你颠倒&&两边的运算量或者调换xa`b`的位置并改变不等号的方向是没问题的)。

运算符的知识暂时就先讲到这里,等我们学到运算符章节时,再深入学习。

《ECMAScript 基础教程》
  • 附录1 关键字与保留字一览表
  • 附录2 进制转换
  • 附录3 原生API手册
  • 附录4 ECMAScript 运行时错误一览表
  • 附录5 部分提案
    • 附录5.1 do 表达式
    • 附录5.2 throw 表达式
    • 附录5.3 链判断运算符
    • 附录5.4 管道运算符
    • 附录5.5 数值分隔符
    • 附录5.6 BigInt 数据类型
  • * 参考链接