入门 - 数学运算符

本文导航

  1. 复杂表达式
  • 作者:KK

  • 发表日期:2016.2.1


程序运行通常需要用到一些计算的符号,正因如此才叫做计算机嘛

首先最常见的就是数学运算符号,有5个,分别是:

  • +加法运算:就像平时我们接触的加法一样,代码例子:

    var a = 1 + 3;
    alert(a);
    

    这样就提示4,因为a这个内存变量是由1 + 3得来的

    计算表达式中可以用变量进行计算哦:

    var a = 3;
    a = a + 1;
    alert(a); //结果为4
    

    但是加法运算其实还能对字符串进行加法,效果就是两个字符串会拼在一起,我之前的一些例子代码中已经出现过,例如:

    var a = '陈' + '小明';
    alert(a); //提示 陈小明 三个字,说明上面两个字符串拼接起来存到内存变量a里了
    

    而当一个数字和一个字符串进行相加时就会被当作字符串拼接:

    var a = 1 + '1';
    alert(a); //结果就是11,因为后面的1是一个单引号引住的字符串,于是当作字符串加法,将两个 1 一左一右拼了起来
    
  • -减法运算:和加法一样,例子:

    var a = 3 - 1;
    alert(a);
    

    结果就是2

  • *乘法运算:我们平时在纸上写乘法时都是用这个符号的,可是这个符号在键盘上不能直接输入,要通过一些工具才能输入(经常接触excel表的同学应该很清楚),所以在计算机里是使用键盘上的*(星号)来表示乘法,代码例子:

    var a = 4 * 6;
    alert(a);
    

    得到24

  • /除法运算:也是因为在计算机里不容易输入我们平时所书写的除法符号,所以就用这个左斜杠符号来代表了,代码例子:

    var a = 6 / 3;
    alert(a); //结果是2
    
    var b = 6 / 4;
    alert(b); //结果是1.5
    
    var c = b / 3;
    alert(c); //可以用变量来进行计算,所以b的值是1.5,除以3得到结果是0.5
    
  • %求余运算:就是求余数,这个运算符左边是放除数,右边是被除数,比如5 % 3,表示要计算5除以3的余数,结果就是2,这个运算在计算机里确实也很有用,代码例子:

    var a = 7 % 3;
    alert(a); //结果是1
    
    var b = 21 % 3;
    alert(b); //结果是0,没有余数,可以被除尽
    
  • ++自增运算符:它可以让一个数字变量的数值增加1

    var a = 1;
    a++;
    alert(a); //结果为2,其实和  a = a + 1 是一样的效果,但是++会运行得快一些
    a++; //考考聪明的你,现在是多少?
    

    这个运算符有一个细节,它可以写成++a这样,就是将运算符放在变量的左边,所产生的区别就是先加还是后加,先看例子:

    var a = 1;
    alert(a++); //但结果是1,不是2
    alert(a); //2
    

    a++它有个变量和运算符,所以它也是一条表达式而不是一个值,这个表达式的计算结果是2(自增后取变量a的值)

    然后将这个表达式放到alert函数中去弹窗时,函数会先取变量a的值进行弹窗显示,再对变量a进行++计算,所以第3行代码中直接alert出来的a是后面++计算后的结果

    这就是把++放在后面的特性,而放在前面就不同,会先加后取值,例子:

    var a = 1;
    alert(++a); //2
    alert(a); //2
    
  • --自减运算符:和++相反,它可以让一个数字变量的数值增减1

    var a = 1;
    a--;
    alert(a); //0
    alert(a--); //先取a的值提示出0,然后--计算,最后a成了-1
    alert(a); //这是上一行的运行结果-1
    alert(--a); //-2
    
  • +=,-=,*`=**,**%=**,还有这4个运算符,它们其实是懒人写法,跟上面的加减乘除运算符效果一样,先以+=`运算为例:

    var a = 9;
    a += 11;
    alert(a); //20
    

    其实上面这个a += 11a = a + 11的简写版本而已,表示"变量自己增加11"并将增加后的结果存回变量a里面

    那么-=符号我就不举例子了,相反过来减掉自己而已,来自乘法的也差不多:

    var a = 5;
    a *= 5;
    alert(a); //25,就是a自己乘以5
    

复杂表达式

  • 多种运算法

    计算代码中的数学计算部分和我们在学校里学到的数学计算公式/表达式逻辑是相同的,比如你可以这样写:

    var a = 23;
    var b = 77;
    var x = a * b + 88 / 2;
    alert(x);
    

    以上代码有乘法加法和除法,和我们在学校学的规则一样,乘法会最先被计算,然后到除法,最后进行加法

  • 运算优先级

    上面的a * b + 88 / 2如果要先变量b和88相加,则改成a * (b + 88) / 2也可以,和现实中的完全一样!