这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战
JavaScript 用于操作数据值的操作符包括算术操作符、位操作符、关系操作符和相等操作符,它们能够适用于很多值,如字符串、数字值、布尔值。
一元操作符
- 只能操作一个值的操作符叫做一元操作符。
1. 递增和递减操作符
递增和递减操作符分为前置型和后置型。
前置型递增和递减操作符:
var age = 10;
++age; // 11;相当于 age = age + 1
--age; // 10;相当于 age = age - 1
注意:执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的
var age = 10;
age = --age + 1;
console.log(age); // 10
后置型递增和递减操作符:
var age = 10;
age++; // 10
age--; // 11
注意:执行后置递增和递减操作时,变量的值都是在语句被求值之后改变的
2. 一元加和减操作符
一元加操作符以一个加号 + 表示,一元减操作符以一个减号 - 表示;一元加操作符对数值不会产生任何影响;一元减操作符用于表示负数,如 1 变成 -1。
var num = 10;
num = +num; // 10
num = -num; // -10
一元加和减操作符主要用于基本的算术运算。
布尔操作符
布尔操作符一共有3个:非 NOT、与 AND、或 OR
1. 逻辑非
逻辑非操作符由一个叹号 ! 表示,会将他的操作数转换成一个布尔值,然后对其求反。
- 操作数是一个对象,返回 false;
- 操作数是一个空字符串,返回 true;
- 操作数是一个非空字符串, 返回 false;
- 操作数是数值0,返回 true;
- 操作数是任意非0数值,返回 false;
- 操作数是 null,返回 true;
- 操作数是 NaN,返回 true;
- 操作数是 undefined,返回 true;
console.log(!false); // true
console.log(!0); // false
console.log(!NaN); // true
console.log(!123); // false
2. 逻辑与
逻辑与操作符由两个和号 && 表示;逻辑与操作属于短路操作,即如果第一个操作数能够决定结果,就不会再对第二个操作数求值,如第一个操作数是 false,则结果必然是 false。
真值表
| 第一个操作数 | 第二个操作数 | 结果 |
|---|---|---|
| true | true | true |
| true | false | false |
| false | false | false |
| false | true | false |
在有一个操作数不是布尔值的情况下,逻辑与操作不一定返回布尔值;
- 第一个操作数是对象,返回第二个操作数;
- 第二个操作数是对象,只有在第一个操作数的求值结果是
true的情况下才会返回该对象; - 两个操作数都是对象,返回第二个操作数;
- 第一个操作数是
null,返回null; - 第一个操作数是
NaN,返回NaN; - 第一个操作数是
undefined,返回undefined;
3. 逻辑或
逻辑或操作符由两条竖线符号 || 表示,与逻辑与操作符相似,逻辑或操作符也是短路操作。
真值表
| 第一个操作数 | 第二个操作数 | 结果 |
|---|---|---|
| true | true | true |
| true | false | true |
| false | false | false |
| false | true | true |
在有一个操作数不是布尔值的情况下,逻辑或也不一定返回布尔值;
- 第一个操作数是对象,返回第一个操作数;
- 第一个操作数的求值结果为 false,返回第二个操作数;
- 两个操作数都是对象,返回第一个操作数;
- 两个操作数都是
null,返回null; - 两个操作数都是
NaN,返回NaN; - 两个操作数都是
undefined,返回undefined;