W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
表達式為 JavaScript 的短語可執(zhí)行并生成值。
1.7 // 字面量
"1.7"
var a = 1;
var b = '2';
var c = (1.7 + a) * '3' - b
全等運算符用于盤對左右兩邊的對象或值是否類型相同且值相等。
偽代碼拆解
function totalEqual(a, b) {
if (a 和 b 類型相同) {
if (a 和 b 是引用類型) {
if (a 和 b 是同一引用)
return true;
else
return false;
} else { // 值類型
if (a 和 b 值相等)
return true;
else
return false;
}
} else {
return false;
}
}
例子
var a = "123";
var b = "123";
var c = "4";
var aObj = new String("123");
var bObj = new String("123");
var cObj = aObj;
a === aObj // false
aObj === bObj // false
aObj === cObj // true
a === b // true
a === c // false
== 用于判斷操作符兩邊的對象或值是否相等。
偽代碼拆解
function equal(a, b) {
if (a 和 b 類型相同) {
return a === b;
} else { // 類型不同
return Number(a) === Number(b); // 優(yōu)先轉(zhuǎn)換數(shù)值類型
}
}
例子
"99" == 99; // true
new String("99") == 99; // true
true == 1; // true
false == 0; // true
'\n\n\n' == // true
0 == null; // false
null == false; // false
"undefined" == undefined; // false
!x 用于表達 x 表達式的運行結(jié)果轉(zhuǎn)換成布爾值(Boolean)之后取反的結(jié)果。!!x 則表示取 x 表達式的運行結(jié)果的布爾值。
var obj = {};
var a = !obj // false;
var a = !!obj // true;
x && y 如果 x 表達式的運行交過轉(zhuǎn)換成 Boolean 值為 false 則不運行表達式 y 而直接返回 x 表達式的運行結(jié)果。相反,如果 x 表達式的運行交過轉(zhuǎn)換成 Boolean 值為 true 則運行表達式 y 并返回 y 表達式的運行結(jié)果。
偽代碼拆解
var ret = null;
if (!!(ret = x)) {
return y;
} else {
return ret;
}
例子
var a = 0 && (function(){return 1 + 1;})(); // 0
var b = 1 && (function(){return 1 + 1;})(); // 2
x || y 如果 x 表達式的運行結(jié)果轉(zhuǎn)換為 Boolean 值為 true,則不運行 表達式 y 而直接返回表達式 x 的運算結(jié)果。(與 && 方式相反)
偽代碼拆解
var ret = null;
if (!!(ret = x)) {
return ret;
} else {
return y;
}
例子
var a = 0 || (function(){return 1 + 1;})(); // 2
var b = 1 || (function(){return 1 + 1;})(); // 1
NOTE:和數(shù)學(xué)上的算術(shù)優(yōu)先級類似,同級從左到右計算。如有疑問加上 () 既可解決優(yōu)先級問題。
Precedence | Operator type | Associativity | Individual operators |
---|---|---|---|
19 | Grouping | n/a | ( … ) |
18 | Member Access | left-to-right | … . … |
Computed Member Access | left-to-right | … [ … ] | |
new (with argument list) | n/a | new … ( … ) | |
17 | Function Call | left-to-right | … ( … ) |
new (without argument list) | right-to-left | new … | |
16 | Postfix Increment | n/a | … ++ |
Postfix Decrement | n/a | … -- | |
15 | Logical NOT | right-to-left | ! … |
Bitwise NOT | right-to-left | ~ … | |
Unary Plus | right-to-left | + … | |
Unary Negation | right-to-left | - … | |
Prefix Increment | right-to-left | ++ … | |
Prefix Decrement | right-to-left | -- … | |
typeof | right-to-left | typeof … | |
void | right-to-left | void … | |
delete | right-to-left | delete … | |
14 | Multiplication | left-to-right | … * … |
Division | left-to-right | … / … | |
Remainder | left-to-right | … % … | |
13 | Addition | left-to-right | … + … |
Subtraction | left-to-right | … - … | |
12 | Bitwise Left Shift | left-to-right | … << … |
Bitwise Right Shift | left-to-right | … >> … | |
Bitwise Unsigned Right Shift | left-to-right | … >>> … | |
11 | Less Than | left-to-right | … < … |
Less Than Or Equal | left-to-right | … <= … | |
Greater Than | left-to-right | … > … | |
Greater Than Or Equal | left-to-right | … >= … | |
in | left-to-right | … in … | |
instanceof | left-to-right | … instanceof … | |
10 | Equality | left-to-right | … == … |
Inequality | left-to-right | … != … | |
Strict Equality | left-to-right | … === … | |
Strict Inequality | left-to-right | … !== … | |
9 | Bitwise AND | left-to-right | … & … |
8 | Bitwise XOR | left-to-right | … ^ … |
7 | Bitwise OR | left-to-right | … | … |
6 | Logical AND | left-to-right | … && … |
5 | Logical OR | left-to-right | … || … |
4 | Conditional | right-to-left | … ? … : … |
3 | Assignment | right-to-left | … = … |
… += … | |||
… -= … | |||
… *= … | |||
… /= … | |||
… %= … | |||
… <<= … | |||
… >>= … | |||
… >>>= … | |||
… &= … | |||
… ^= … | |||
… |= … | |||
2 | yield | right-to-left | yield … |
1 | Spread | n/a | ... … |
0 | Comma / Sequence | left-to-right | … , … |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: