首先进行一个术语的定义

1.运算元---------运算符应用的对象。比如说减法运算符7-2,有两个运算元:左边7和右边2。

2.二元运算符:向上面的减法运算符,有两个运算元,那么他就是二元运算符。

3.一元运算符:-不光能做减法用,也可以是负号运算。x=-x,那么此时他就是一元运算符。

一、数学运算符

  • 加法:+
  • 减法:-
  • 乘法:*
  • 除法:/
  • 取余:%
  • 求幂:**

这里重点说一下%和**

1.取余:%

a%b  的结果是 a 整除 b的余数

比如

2.求幂**

a**b 即为 a乘以自身 b次

比如

二、用二元运算符 + 连接字符串

通常情况下,加号+用于求和;

但是如果加号+被应用于字符串,他将合并各个字符串,哪怕只有一个运算元是字符串。

JavaScript代码取余 js除法取余_前端

因为一个是数字,一个是字符串,所以就会拼串

 

JavaScript代码取余 js除法取余_JavaScript代码取余_02

 在这里,运算符是按照顺序工作,第一个+将两个数字相加,返回4,然后下一个+将字符串‘1’进行拼串。

二元 ‘+’ 是唯一一个这种方式支持字符串的运算符,其他运算符只对数字起作用,并且总是将其运算元转换成数字。

JavaScript代码取余 js除法取余_字符串_03

 三、数字转化,一元运算符 +

Number(...) 

  • ‘+’ 会将其转化为数字。

JavaScript代码取余 js除法取余_运算符_04

  •  对于将字符串转化为数字的需求,但是两个字符串直接相加又会拼串,那么我们应该如下操作:

let apples = "2";

let oranges = "3";

// 在二元运算符加号起作用之前,所有的值都被转化为了数字

alert( +apples + +oranges ); // 5

//更长的写法

alert( Number(apples) + Number(oranges) ); // 5

为什么一元运算符先于二元运算符作用于元?显然因为优先级,一元运算符优先与二元运算符

下面是优先级表,数越大优先级越高

JavaScript代码取余 js除法取余_运算符_05

四、赋值运算符

  •        从上面我们可以看到赋值运算符的优先级很低。这也就是 为什么我们在赋值过程中都是计算先执行的原因。

 

JavaScript代码取余 js除法取余_前端_06

  •  赋值=返回一个值

‘=’  是一个运算符,语句 x= value 将值value写入x ,然后返回 x。

JavaScript代码取余 js除法取余_字符串_07

 但是平常不要这么写代码,一点都不清晰可读

  • 链式赋值

JavaScript代码取余 js除法取余_前端_08

 链式赋值从右到左进行计算,最后所有的变量共享一个值

但是处于可读性,这样的代码最好分成几行写

JavaScript代码取余 js除法取余_运算符_09

五、原地修改

对一个变量做运算,并将新的结果存储在同一个变量中。

 

JavaScript代码取余 js除法取余_javascript_10

 可用运算符 += 和  *=

JavaScript代码取余 js除法取余_JavaScript代码取余_11

 /=   和  -=  等

JavaScript代码取余 js除法取余_字符串_12

 六、自增/自减

  • 自增 ++:将变量与1相加

JavaScript代码取余 js除法取余_前端_13

  • -- :将变量与1 相减

JavaScript代码取余 js除法取余_运算符_14

       那么将运算符至于变量的前后(counter ++、++counter)又有什么区别吗,首先他们的共同点就是:将变量与1 相加/相减,区别是:

1.前置形式返回一个新的值

JavaScript代码取余 js除法取余_javascript_15

2.后置返回原来的值(做加法、减法之前的值)

JavaScript代码取余 js除法取余_运算符_16

 自增自减的优先级要比绝大部分运算符高

JavaScript代码取余 js除法取余_字符串_17

七、位运算符

  • 按位与( & )
  • 按位或(  | 
  • 按位异或( ^ )
  • 按位非( ~ )
  • 左移( << )
  • 右移( >> )
  • 无符号右移( >>> )

八、逗号运算符  ‘  ,

       该运算符能让我们处理多个语句,使用逗号运算符将它们分开,每个语句都运行了,但是只有最后的语句的结果会被返回

JavaScript代码取余 js除法取余_javascript_18

注意:逗号的运算优先级非常低,比 =  还要低,因此例子里面的括号非常重要

练习:

1.后置运算符和前置运算符

JavaScript代码取余 js除法取余_javascript_19

JavaScript代码取余 js除法取余_前端_20

2.类型转换

JavaScript代码取余 js除法取余_字符串_21