本文只介绍算数操作符,如果讲全部操作符,篇幅会很长,后面我们在讲其他的操作符。
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,递减和上面一样。
正文完