关于前端:一文搞懂JavaScript-运算符-–-逻辑比较三元和更多-JS-运算符

7次阅读

共计 4035 个字符,预计需要花费 11 分钟才能阅读完成。

依据这些 JS 运算符执行的操作类型,咱们能够将它们分为七组:

  • 算数运算符
  • 赋值运算符
  • 比拟运算符
  • 逻辑运算符
  • 三元运算符
  • 运算符的类型
  • 按位运算符

算术运算符

算术运算符用于执行数学运算,如加法和减法。

这些运算符常常与数字数据类型一起应用,因而它们相似于计算器。上面的示例演示如何应用运算符将两个变量相加:+

let x = 3;
let y = 8;

console.log(x + y); // 11

您能够间接对值应用运算符,而无需将它们调配给任何变量:

console.log(2 + 1); // 3
console.log(4 + 1); // 5

在 JavaScript 中,咱们总共有 8 个算术运算符。它们是:

  1. 加法 +
  2. 减法 -
  3. 乘法 *
  4. 除法 /
  5. 取余 %
  6. **
  7. 减少 ++
  8. 递加 --

咱们能够混合这些运算符来执行简单的数学方程。

console.log(5 + 2 * 3); // 11

JavaScript 中的运算程序与数学中的操作程序雷同。乘法、除法和幂的优先级高于加法或减法

能够应用括号更改操作的程序。包装要首先执行的操作,如下所示:()

console.log((5 + 2) * 3); // 21

将递增或递加运算符与其余运算符一起应用时,须要将运算符放在前缀地位,如下所示:

let x = 5;
console.log(2 + ++x); // 2 + 6 = 8

让咱们尝试一些练习。你能猜出这些操作的后果吗?

console.log(5 * 3 - 2);
console.log((3 * 6) % 2);
console.log(5 + 7 - 1);
console.log((4 + 9) * 4);

let x = 5;
console.log(++x);
console.log(x++ / 3);

赋值运算符

let x = 5;

在根本赋值运算符之后,还有 5 个赋值运算符将数学运算与赋值相结合。这些运算符可用于使代码洁净而简短。

例如,假如您要将变量递增 2。以下是应用根本赋值运算符执行此操作的办法:x

let x = 5;

x = x + 2;

下面的代码没有任何问题,但您能够应用加法赋值重写第二行,如下所示:+=

let x = 5;

x += 2;

您能够在 JavaScript 中应用 7 种赋值运算符:

名字 操作示例 意义
调配 x = y x = y
加法调配 x += y x = x + y
减法调配 x -= y x = x - y
乘法赋值 x *= y x = x * y
除法调配 x /= y x = x / y
余数调配 x %= y x = x % y
幂赋值 x **= y x = x ** y

让咱们疾速练习一下。

let x = 3;

x += 2 * 3;
console.log(x);

x -= 3;
console.log(x);

x %= 2;
console.log(x);

比拟运算符

顾名思义,比拟运算符用于将一个值或变量与其余值或变量进行比拟。此类别中的运算符始终返回布尔值:要么 true 要么 false

例如,假如您要比拟变量的值是否大于 1。你能够通过上面的办法进行判断:

let x = 5;

console.log(x > 1); // true
console.log(x > 7); // false

avaScript 中有 8 种比拟运算符可用:

名字 操作示例 意义
等于 x == y 如果操作数相等则返回 true
不等于 x != y 如果操作数不相等,则返回 true
严格等于 x === y 如果操作数相等且类型雷同,则返回 true
严格不等于 x !== y 如果操作数不相等或具备不同的类型,则返回 true
大于 x > y 如果左操作数大于右操作数,则返回 true
大于或等于 x >= y 如果左操作数大于或等于右操作数,则返回 true
小于 x < y 如果左操作数小于右操作数,则返回 true
小于或等于 x <= y 如果左操作数小于或等于右操作数,则返回 true

以下是应用比拟运算符的一些示例:

console.log(9 == 9); // true

console.log(9 != 20); // true

console.log(2 > 10); // false

console.log(2 < 10); // true

console.log(5 >= 10); // false

console.log(10 <= 10); // true

比拟运算符进一步分为两种类型:关系运算符和相等运算符。

关系运算符比拟一个操作数绝对于第二个操作数的值(大于、小于)

相等运算符查看左侧的值是否等于右侧的值。它们还可用于比拟如下所示的字符串:

console.log("ABC" == "ABC"); // true

console.log("ABC" == "abc"); // false

console.log("Z" != "A"); // true

字符串比拟辨别大小写,如上例所示。

在严格模式下,JavaScript 将比拟值而不执行类型强制。要启用严格模式,您须要在操作中增加一个相等符号,如下所示:=

console.log("9" == 9); // true
// strict equal
console.log("9" === 9); // false

console.log("1" != 1); // false
// strict not equal
console.log("1" !== 1); // true

因为类型强制可能导致不须要的行为,因而在执行相等比拟时应应用严格的相等运算符。

逻辑运算符

JavaScript 中有三个可用的逻辑运算符:

名字 操作示例 意义
逻辑和 x && y 如果所有操作数都是,则返回,否则返回 true`true`false
逻辑或 `x y` 如果其中一个操作数为,则返回,否则返回 true`true`false
逻辑不是 !x 反转后果:返回 if 反之亦然 true`false`

这些运算符只能返回布尔值。例如,您能够确定“7 是否大于 2”和“5 大于 4”:

console.log(7 > 2 && 5 > 4); // true

这些逻辑运算符遵循数理逻辑定律:

  1. &&AND 运算符 – 如果任何表达式返回 false,则后果为 false
  2. ||OR 运算符 – 如果任何表达式返回 true,则后果为 true
  3. !NOT 运算符 – 否定表达式,返回相同的表达式。

咱们来看上面的语句,你能看进去后果吗

console.log(true && false);

console.log(false || false);

console.log(!true);

三元运算符

假如您须要在代码中实现一些特定的逻辑。假如你开了一家卖水果的商店。当总购买量为 3 美元或更多时,您能够享受 20 元的折扣。否则,您提供 1 元的折扣。

您能够应用语句实现逻辑,如下所示:if..else

let totalPurchase = 15;

let discount;

if (totalPurchase >= 20) {discount = 3;} else {discount = 1;}

下面的代码工作失常,但您能够应用三元运算符使代码更短、更简洁,如下所示:

let totalPurchase = 15;

let discount = totalPurchase >= 20 ? 3 : 1;

typeof

上面是应用运算符的一些示例:

let x = 5;
console.log(typeof x) //  'number'

console.log(typeof "Nathan") // 'string'

console.log(typeof true) // 'boolean'

console.log(typeof null) // 'object'

console.log(typeof [1, 2, 3]) // 'object'

console.log(typeof {}) // 'object'

console.log(typeof undefined) // 'undefined'

按位运算符

按位运算符是将其操作数视为一组二进制数字,但将运算后果作为十进制值返回的运算符

JavaScript 中有 7 种类型的按位运算符:

  1. &
  2. |
  3. 异或 ^
  4. ~
  5. 左移 <<
  6. 右移 >>
  7. 零填充右移 >>>

1. 按位 AND 运算符

当数字 1 在两个操作数中重叠时,按位运算符 AND 返回 1。十进制数字 1 和 2 没有重叠的 1,因而在数字上应用此运算符返回 0:&

// 1 = 00000001
// 2 = 00000010
// ------------
//     00000000 = 0

console.log(1 & 2); // 0

2. 按位 OR 运算符

另一方面,按位运算符 OR 返回两个十进制数字中的所有 1。|

// 1 = 00000001
// 2 = 00000010
// ------------
//     00000011 = 3

console.log(1 | 2); // 3

二进制数 00000011 示意十进制数 3,因而下面的 OR 运算符返回 3。

按位异或运算符

按位 XOR 查找两个二进制数之间的差别。当相应的位雷同时,它返回 0:^

5 = 00000101

// 5 = 00000101
// 7 = 00000111
// ------------
//     00000010 = 2

console.log(5 ^ 7); // 2

按位非运算符

按位 NOT 运算符反转十进制数的位,因而 0 变为 1,1 变为 0:~

// 5 = 00000101
// ------------
//     11111010 = -6

console.log(~5); // -6

按位左移运算符

按位左移通过从右侧增加零来挪动位的地位。<<

而后抛弃多余的位,更改由位示意的十进制数。请参阅以下示例:

console.log(5 << 2);

// 5 = 00000101
// ------------ << Shift to the left by 2
//     00010100 = 20

右操作数是要增加到左操作数的零数。

按位右移运算符

按位右移通过从左侧增加零来挪动位的地位。它与左移运算符相同:>>

console.log(5 >> 2); // 1

// 5 = 00000101
// ------------ >> Shift to the right by 2
//     00000001 = 1

按位零填充右移运算符

也称为无符号右移运算符,零填充右移运算符用于将位的地位向右挪动,同时将符号位更改为。>>>`0`

此运算符将任何正数转换为负数,因而您能够看到将正数作为左操作数传递时它是如何工作的:

console.log(-70 >> 1); // -35
console.log(-70 >>> 1); // 2147483613

console.log(5 >> 1); // 2
console.log(5 >>> 1); // 2
正文完
 0