关灯
开启左侧

你忘记学习的东西?

[复制链接]
老蚊子 发表于 2019-3-22 08:43:42 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
本帖最后由 老蚊子 于 2019-3-22 08:51 编辑

对任何编程语言执行数学运算和微积分都是很常见的事情。 JavaScript 提供了几个运算符来帮助我们处理数字。
算术运算符相加 (+)
  1. const three = 1 + 2
  2. const four = three + 1
复制代码

如果你使用字符串,+ 运算符也可以作为字符串连接,所以要注意:
  1. const three = 1 + 2
  2. three + 1 // 4
  3. 'three' + 1 // three1
复制代码
相减(-)
  1. const two = 4 - 2除法(/)
复制代码


返回第一个数字和第二个数字之间商:
  1. const result = 20 / 5   //result === 4
  2. const result = 20 / 7   //result === 2.857142857142857
复制代码

如果除以 0,JavaScript 不会抛出任何错误,而是返回 Infinity(如果是负值返回 -Infinity)。
  1. 1 / 0 //Infinity
  2. -1 / 0 //-Infinity
复制代码


取余(%)
取余在很多情况下都很有用:
  1. const result = 20 % 5 //result === 0
  2. const result = 20 % 7 //result === 6
复制代码

对 0 取余始终是 NaN,一个特殊值,意思是“不是一个数字”:
  1. 1 % 0 //NaN
  2. -1 % 0 //NaN
复制代码
乘法
  1. (*)1 * 2 //2
  2. -1 * 2 //-2
复制代码


求幂(**)
将第一个操作数乘第二个操作数次数:
1 ** 2 //1
2 ** 1 //2
2 ** 2 //4
2 ** 8 //256
8 ** 2 //64



一元运算符递增 (++)
递增数字。这是一个一元运算符,如果放在数字之前,则返回递增后的值。
如果放在数字后面,它将返回原始值,然后递增。
  1. let x = 0
  2. x++ //0
  3. x //1
  4. ++x //2
复制代码


递减(–)
和递增运算符相似,不过它递减值。
  1. let x = 0
  2. x-- //0
  3. x //-1
  4. --x //-2
复制代码


一元负号(-)
返回操作数的负值
  1. let x = 2
  2. -x //-2
  3. x //2
复制代码


一元正号(+)
如果操作数不是数字,它会尝试将操作数转换数字。否则,如果操作数已经是一个数字,它什么都不做。
  1. let x = 2
  2. +x //2
  3. x = '2'
  4. +x //2
  5. x = '2a'
  6. +x //NaN
复制代码


赋值快捷方式
常规赋值运算符 = ,对所有算术运算符的都有一个快捷方式,它们允许您组合赋值,将第一个操作数和第二个操作数的结果赋值给第一个操作数。
它们是:
+=:加法赋值
-=:除法赋值
*=:乘法赋值
/=:除法赋值
%=:取余赋值
**=:求幂赋值
例子:
  1. const a = 0
  2. a += 5   //a === 5
  3. a -= 2    //a === 3
  4. a *= 2    //a === 6
  5. a /= 2    //a === 3
  6. a %= 2  //a === 1
复制代码

优先级
每个复杂的表达式都会引入优先问题。
看这个:
  1. const a = 1 * 2 + 5 / 2 % 2
复制代码

结果等于 2.5。但是为什么呢?哪个运算先执行,哪个后执行?
有些运算符的优先级比其它的高。优先级规则如下:
  1. - + ++ -- 一元运算符,递增,递减
  2. * / % 乘法/除法
  3. + - 加法/减法
  4. = += -= *= /= %= **= 赋值运算
复制代码

同一级别的运算符(如 + 和 - )按找到的顺序执行
按照上面的顺序,我们可以解决这个计算:

  1. const a = 1 * 2 + 5 / 2 % 2
  2. const a = 1 * 2 + 5 / 2 % 2
  3. const a = 2 + 2.5 % 2
  4. const a = 2 + 0.5
  5. const a = 2.5
复制代码


 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


1关注

11粉丝

65帖子

排行榜
关闭

站长推荐上一条 /1 下一条

官方微信

全国服务热线:

400-0708-360

公司地址:国家西部信息安全产业基地(成都市高新区云华路333号)

邮编:610000    Email:2908503813@qq.com

Copyright   ©2015-2016  EOIT论坛Powered by©Discuz!    ( 蜀ICP备11000634号-7 )