Skip to content

運用符

基礎運用符

示例代碼:

js
var a = 10,
  b = 20;

// Addition
console.log(30 === a + b);
// Subtraction
console.log(-10 === a - b);
// Multiplication
console.log(200 === a * b);
// Division
console.log(0.5 === a / b);
// Complementation
console.log(10 === a % b);

加法運算+也可以用作字串的拼接。

js
var a = ".w",
  b = "xs";

// String concatenation
console.log(".wxs" === a + b);

一元運用符

示例代碼:

js
var a = 10,
  b = 20;

// Auto increment
console.log(10 === a++);
console.log(12 === ++a);
// Auto decrement
console.log(12 === a--);
console.log(10 === --a);
// Positive value
console.log(10 === +a);
// Negative value
console.log(0 - 10 === -a);
// Not
console.log(-11 === ~a);
// Negate
console.log(false === !a);
// Delete
console.log(true === delete a.fake);
// Void
console.log(undefined === void a);
// Typeof
console.log("number" === typeof a);

比特運用符**

示例代碼:

js
var a = 10,
  b = 20;

// Left shift
console.log(80 === a << 3);
// Unsigned right shift
console.log(2 === a >> 2);
// Signed right shift
console.log(2 === a >>> 2);
// AND
console.log(2 === (a & 3));
// XOR
console.log(9 === (a ^ 3));
// OR
console.log(11 === (a | 3));

比較運用符**

示例代碼:

js
var a = 10,
  b = 20;

// Less than
console.log(true === a < b);
// Greater than
console.log(false === a > b);
// Less than or equal to
console.log(true === a <= b);
// Greater than or equal to
console.log(false === a >= b);

等值運用符**

示例代碼:

js
var a = 10,
  b = 20;

// Equal sign
console.log(false === (a == b));
// Not equal sign
console.log(true === (a != b));
// Equivalent sign
console.log(false === (a === b));
// Not equivalent sign
console.log(true === (a !== b));

賦值運用符**

示例代碼:

js
var a = 10;

a = 10;
a *= 10;
console.log(100 === a);
a = 10;
a /= 5;
console.log(2 === a);
a = 10;
a %= 7;
console.log(3 === a);
a = 10;
a += 5;
console.log(15 === a);
a = 10;
a -= 11;
console.log(-1 === a);
a = 10;
a <<= 10;
console.log(10240 === a);
a = 10;
a >>= 2;
console.log(2 === a);
a = 10;
a >>>= 2;
console.log(2 === a);
a = 10;
a &= 3;
console.log(2 === a);
a = 10;
a ^= 3;
console.log(9 === a);
a = 10;
a |= 3;
console.log(11 === a);

二元邏輯運用符**

示例代碼:

js
var a = 10,
  b = 20;

// Logical AND
console.log(20 === (a && b));
// Logical OR
console.log(10 === (a || b));

其他運用符**

示例代碼:

js
var a = 10,
  b = 20;

//Conditional operator
console.log(20 === (a >= 10 ? a + 10 : b + 10));
//Comma operator
console.log(20 === (a, b));

運算符優先級

Priority運用符說明Associativity
20( ... )括弧n/a
19... . ...成員訪問從左到右
19... [ ... ]成員訪問從左到右
19... ( ... )函數調用從左到右
17... ++後置遞增n/a
17... --後置遞減n/a
16! ...邏輯非從右到左
16~ ...按比特非從右到左
16+ ...一元加法從右到左
16- ...一元減法從右到左
16++ ...前置遞增從右到左
16-- ...前置遞減從右到左
16typeof ...typeof從右到左
16void ...void從右到左
16delete ...delete從右到左
14... * ...乘法從左到右
14... / ...除法從左到右
14... % ...取模從左到右
13... + ...加法從左到右
13... - ...減法從左到右
12... << ...按比特左移從左到右
12... >> ...按比特右移從左到右
12... < ...無符號右移從左到右
11... >>> ...小於從左到右
11... <= ...小於等於從左到右
11... > ...大於從左到右
11... >= ...大於等於從左到右
10... == ...等號從左到右
10... != ...非等號從左到右
10... === ...全等號從左到右
10... !== ...非全等號從左到右
9... & ...按比特與從左到右
8.. ^ ...按比特异或從左到右
7... | ...按比特或從左到右
6... && ...邏輯與從左到右
5... || ...邏輯或從左到右
4... ? ... : ...條件運用符從右到左
3... = ...賦值從右到左
3... += ...賦值從右到左
3... -= ...賦值從右到左
3... *= ...賦值從右到左
3... /= ...賦值從右到左
3... %= ...賦值從右到左
3... <<= ...賦值從右到左
3... >>= ...賦值從右到左
3... >>>= ...賦值從右到左
3... &= ...賦值從右到左
3... ^= ...賦值從右到左
3... |= ...賦值從右到左
0... , ...逗號從左到右