JavaScript 算数

处理数值的典型情景是算数。

JavaScript 算数运算符

算术运算符对数值(文字或变量)执行算术运算。

yunsuanfu miaoshu
+ 加法
- 减法
* 乘法
** 幂(ES2016
/ 除法
% 系数
++ 递增
-- 递减

算数运算符

典型的算术运算会操作两个数值。

这两个数可以是字面量:

shili

var x = 7 + 8;

zishen shiyan

或变量:

shili

var x = a + b;

zishen shiyan

或表达式:

shili

var x = (7 + 8) * a;

zishen shiyan

运算符和操作数

在算术运算中,数被称为操作数

(两个操作数之间执行的)运算由yunsuanfu定义。

操作数 yunsuanfu 操作数
7 + 8

加法

加法运算符(+)加数:

var x = 7;
var y = 8;
var z = x + y; 

zishen shiyan

减法

减法运算符(-)减数。

var x = 7;
var y = 8;
var z = x - y; 

zishen shiyan

乘法

乘法运算符(*)乘数。

var x = 7;
var y = 8;
var z = x * y; 

zishen shiyan

除法

除法运算符(/)除数。

var x = 7;
var y = 2;
var z = x / y; 

zishen shiyan

系数

系数运算符(%)返回除法的余数。

var x = 7;
var y = 2;
var z = x % y; 

zishen shiyan

注释:在算术中,两个整数的除法产生商和余数。

注释:在数学中,模运算的结果是算术除法的余数。

递增

递增运算符(++)对数值进行递增。

var x = 7;
x++;
var z = x;

zishen shiyan

递减

递减运算符(--)对数值进行递减。

var x = 7;
x--;
var z = x; 

zishen shiyan

取幂运算符(**)将第一个操作数提升到第二个操作数的幂。

shili

var x = 5;
var z = x ** 2;          // 结果是 25

zishen shiyan

x ** y chuan de jieguo yu Math.pow(x,y) xiangdeng:

shili

var x = 5;
var z = Math.pow(x,2);   // jieguo shi 25

zishen shiyan

yunsuanfu youxianji

yunsuanfu youxianji (Operator precedence) miaoshu le zai suanshu shiyan zhong zishi zhixing操zuo de shunxu。

shili

var x = 200 + 50 * 2;

zishen shiyan

shang li de jieguo shi 250 * 2 haishi 200 + 100 ne?

shi jiafa haishi cheng fa youxian ne?

zai chuantradong de xuexiao shuxue zhong, cheng fa shi youxian de。

cheng fa(*)he chu fa(%)bi jiafa(+)he jianfa(-)you gao deyouxianji

tongshang, (daxing zai xuexiao de shuxue zhong daoxiang) neng guo yong yong guokou lai gai bian youxianji:

shili

var x = (200 + 50) * 2;

zishen shiyan

dang shiyong guokou shi, guokou zhong de yunsuanfu hui zuijin bei jisuan。

dang duo ge yunsuan you xiangdeng de youxianji shi (dajia jia he jianfa), tamen de jisuan shi cong zuo xiang you

shili

var x = 200 + 50 - 2;

zishen shiyan

JavaScript yunsuanfu youxianji zhi

zhi yunsuanfu miaoshu shili
20 ( ) biaodanyu zuhe (3 + 4)
       
19 . chengyuan person.name
19 [] chengyuan person["name"]
19 () hanshu diaoyong myFunction()
19 new chuangjian new Date()
       
17 ++ houzhui jiazheng i++
17 -- houzhui jiedian i--
       
16 ++ qianzhui jiazheng ++i
16 -- qianzhui jiedian --i
16 ! Logical negation !(x==y)
16 typeof leixing typeof x
       
15 ** qiu mian (ES7) 10 ** 2
       
14 * cheng 10 * 5
14 / chu 10 / 5
14 % modu chufa 10 % 5
       
13 + jia 10 + 5
13 - jian 10 - 5
       
12 << zuoweiyidong x << 2
12 >> youwai yidong x >> 2
12 >>> youwai yidong (wuxian) x >>> 2
       
11 < xiaoyu x < y
11 <= xiaoyu huodengyu x <= y
11 > dayu x > y
11 >= dayu huodengyu x >= y
11 in duixiang zhong de shuxing "PI" in Math
11 instanceof duixiang de shili instanceof Array
       
10 == kaiyiqingdeng x == y
10 === kaiyiqingdeng x === y
10 != Inequality x != y
10 !== Strict inequality x !== y
       
9 & Bitwise AND x & y
8 ^ Bitwise XOR x ^ y
7 | Bitwise OR x | y
6 && Logical conjunction x && y
5 || Logical negation x || y
4 ? : Conditional ? "Yes" : "No"
       
3 = Assignment x = y
3 += Assignment x += y
3 -= Assignment x -= y
3 *= Assignment x *= y
3 %= Assignment x %= y
3 <<= Assignment x <<= y
3 >>= Assignment x >>= y
3 >>>= Assignment x >>>= y
3 &= Assignment x &= y
3 ^= Assignment x ^= y
3 |= Assignment x |= y
       
2 yield Pause function yield x
1 , Comma 7, 8

Note:Light red indicates experimental or recommended technology (ECMASScript 2016 or ES7)

Tip:The expression in parentheses will be fully evaluated before the value is used in the rest of the expression.