一、赋值运算符
赋值运算符用于将等号右侧的值赋值给等号左侧的变量。
<script>
// 将数字10赋值给变量num
var num = 10;
</script>
二、算术运算符
算术运算符使用数值(字面量或者变量)作为操作数并返回一个数值,标准的算术运算符就是加减乘除(+ - * /)。(注意,除零会产生 Infinity )
1、一元运算符
只需要一个操作数就可以运算的符号。
- ++:自增,将操作数的值加一。如果放在操作数前面 (++x), 则返回加一后的值; 如果放在操作数后面 (x++), 则返回操作数原值,然后再将操作数加一。
- --:自减,将操作数的值减一。前后缀两种用法的返回值类似自增运算符。
- -:返回操作数的负值。
- +:返回操作数本身。如果操作数在之前不是number,试图将其转换为number。
<script>
var num = 1;
console.log(num++); // 先打印,再自增 1
console.log(--num); // 先自减,再自减 1
var str = "1";
console.log(-str); // -1
console.log(+str); // 1
</script>
2、二元运算符
除了标准的算术运算符(+, - ,*, /),JavaScript还提供了(%,**)
- +, - ,*, /:加减乘除;
- %,**:取余,指数运算;
<script>
var num1 = 10;
var num2 = 2;
console.log(num1 + num2); // 12
console.log(num1 - num2); // 8
console.log(num1 * num2); // 20
console.log(num1 / num2); //5
console.log(num1 % num2); // 0
console.log(num1 ** num2); // 100
</script>
3、条件(三元)运算符
条件运算符是JavaScript中唯一需要三个操作数的运算符。运算的结果根据给定条件在两个值中取其一。
- 语法:条件 ? 值1 : 值2
<script>
var num = 10;
console.log(num > 10? "num大于10":"num不大于10"); // num不大于10
</script>
三、比较运算符
比较运算符比较它的操作数并返回一个基于表达式是否为真的逻辑值。操作数可以是数字,字符串,逻辑,对象值。
在多数情况下,如果两个操作数不是相同的类型, JavaScript 会尝试转换它们为恰当的类型来比较。这种行为通常发生在数字作为操作数的比较。类型转换的例外是使用=== 和 !=== 操作符,它们会执行严格的相等和不相等比较。这些运算符不会在检查相等之前转换操作数的类型。
- ==:等于
- !=:不等于
- ===:全等
- !===:不全等
- >、<、>=、<=:大于、小于、大于等于、小于等于
<script>
console.log("1" == 1); // true
console.log("1 " == 1); // true
console.log("1a" == 1); // false
console.log("1" === 1); // false
</script>
四、逻辑运算符
逻辑运算符常用于布尔(逻辑)值之间。 当操作数都是布尔值时,返回值也是布尔值。 不过,实际上 && 和 || 返回的是一个特定的操作数的值,所以当它用于非布尔值的时候,返回值就可能是非布尔值。
- 逻辑与(&&)
- 逻辑或(||)
- 逻辑非(!):如果操作数能够转换为true,则返回false;否则返回true。
<script>
console.log(1 == 1 && 1 == 2); // fasle --t && f
console.log(1 == 1 || 1 == 2); // true --t || f
// 1、有false,返回第一个为false的值
console.log(true && false && 4); // false --t && f && t
// 2、无false,返回最后一个值
console.log(true && 3 && 4); // 4 --t && t && t
// 1、有true,返回第一个为true的值
console.log(false || 3 || 4); // 3 --f || t || t
// 2、无true,返回最后一个值
console.log(false || null); // null --f || f
</script>
六、位运算符
位运算符将它的操作数视为32位元的二进制串,位运算符就是在这个二进制表示上执行运算,但是返回结果是标准的JavaScript数值。
- 按位与(&):a&b,在a,b的位表示中,每一个对应的位都为1则返回1, 否则返回0。
- 按位或(|):a|b,在a,b的位表示中,每一个对应的位,只要有一个为1则返回1, 否则返回0。
- 按位异或(^ ) :a^b,在a,b的位表示中,每一个对应的位,两个不相同则返回1,相同则返回0。
- 按位非(~ ):~a,反转被操作数的位。
- 左移(<<):a<<b,将a的二进制串向左移动b位,右边补0。
- 算术右移(>>):a >> b,把a的二进制表示向右移动b位,左边填充符号位。
- 无符号右移( >>>):a >>> b 把a的二进制表示向右移动b位,丢弃被移出的所有位,并把左边空出的位都填充为0。
五、复合运算符
如果将赋值运算符与二元运算符结合起来,就组成了复合赋值运算符,复合运算符将接收的变量本身进行算术运算后返回。
<script>
var num1 = 10;
var num2 = 2;
console.log(num1 += num2); // num1 = 10 + 2 = 12
console.log(num1 -= num2); // num1 = 12 - 2 = 10
console.log(num1 /= num2); // num1 = 10 / 2 = 5
console.log(num1 %= num2); // num1 = 5 % 2 = 1
console.log(num1 **= num2); // num1 = 1 ^ 2 = 1
</script>
参考链接: