经验分享 – JavaScript操作符之算数操作符

本文只介绍算数操作符,如果讲全部操作符,篇幅会很长,后面我们在讲其他的操作符。

1 算数操作符

+、-、*、/、 %我们归为算数操作符(二元算数),这几个是最简单的操作符。

1.1 +(加)

加法操作符(+)用于求两个数的和。

let result = 1 + 2 + 3; 

这里不多说,如果两个操作数都是数字,那就是相加,如果有一方是字符串,那就是两个操作数拼接。遵循如下规则

  • 如果有任一操作数是 NaN,则返回 NaN;
  • 如果两个操作数都是字符串,则将第二个字符串拼接到第一个字符串后面;
  • 如果只有一个操作数是字符串,则将另一个操作数转换为字符串,再将两个字符串拼接在一起。

1.2 -(减)

减法操作符(-)也是使用很频繁的一种操作符

let result = 2 - 1 - 1;

  • 如果两个操作数都是数值,则执行数学减法运算并返回结果。
  • 如果有任一操作数是 NaN,则返回 NaN。
  • 如果有任一操作数是字符串、布尔值、null 或 undefined,则先在后台使用 Number()将其转换为数值,然后再根据前面的规则执行数学运算。如果转换结果是 NaN,则减法计算的结果是NaN。
  • 如果有任一操作数是对象,则调用其 valueOf()方法取得表示它的数值。如果该值是 NaN,则减法计算的结果是 NaN。如果对象没有 valueOf()方法,则调用其 toString()方法,然后再将得到的字符串转换为数值。

1.3 *(乘)

乘法操作符由一个星号(*)表示,可以用于计算两个数值的乘积。

let result = 11 * 22;

执行数学乘法,但是有一些特殊情况,

  • 如果有任一操作数是 NaN,则返回 NaN
  • 如果有不是数值的操作数,则先在后台用 Number()将其转换为数值,然后再操作。

1.4 /(除)

除法操作符由一个斜杠(/)表示,用于计算第一个操作数除以第二个操作数的商。

let result = 90 / 10;

和乘法一样,也会有特殊情况

  • 如果有任一操作数是 NaN,则返回 NaN
  • 如果是 0 除以 0,则返回 NaN。
  • 如果有不是数值的操作数,则先在后台用 Number()函数将其转换为数值,然后再操作。

1.5 %(取模)

百分比符号(%)表示,取余数。

let result = 101 % 10;

上面result结果等于1。

2 递增和递减

2.1 递增

var age = 29;
++age;
//相当于
var age = 29;
age = age + 1;

递增++运算符对其操作数进行增量(加1)操作。

2.2 递减

var age = 29;
--age;
//相当于
var age = 29;
age = age - 1;

递增–运算符对其操作数进行增量(减1)操作。

这里面有个小知识点,a++和++a有什么区别?

let a = 1
let c = a++
let b = 1
let d = ++b
console.log(a)
console.log(b)
console.log(c)
console.log(d)

猜测下,a、b、c、d各是多少,除了c等于1外,其余都是2,区别就是++a,是先对a+1,然后在使用a,a++是先使用a,然后在对a+1,递减和上面一样。

正文完