JavaScript 操作符(一)

123 阅读3分钟

这是我参与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。

真值表

第一个操作数第二个操作数结果
truetruetrue
truefalsefalse
falsefalsefalse
falsetruefalse

在有一个操作数不是布尔值的情况下,逻辑与操作不一定返回布尔值;

  • 第一个操作数是对象,返回第二个操作数;
  • 第二个操作数是对象,只有在第一个操作数的求值结果是 true 的情况下才会返回该对象;
  • 两个操作数都是对象,返回第二个操作数;
  • 第一个操作数是 null,返回 null
  • 第一个操作数是 NaN,返回 NaN
  • 第一个操作数是 undefined,返回 undefined
3. 逻辑或

逻辑或操作符由两条竖线符号 || 表示,与逻辑与操作符相似,逻辑或操作符也是短路操作。

真值表

第一个操作数第二个操作数结果
truetruetrue
truefalsetrue
falsefalsefalse
falsetruetrue

在有一个操作数不是布尔值的情况下,逻辑或也不一定返回布尔值;

  • 第一个操作数是对象,返回第一个操作数;
  • 第一个操作数的求值结果为 false,返回第二个操作数;
  • 两个操作数都是对象,返回第一个操作数;
  • 两个操作数都是 null,返回 null
  • 两个操作数都是 NaN,返回 NaN
  • 两个操作数都是 undefined,返回 undefined