20個JavaScript重點知識點(8)運(yùn)算符
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
算術(shù)運(yùn)算符用于數(shù)學(xué)計算,返回數(shù)值結(jié)果。
賦值運(yùn)算符為變量分配值,可結(jié)合算術(shù)運(yùn)算。
比較運(yùn)算符返回布爾值( |
== | 5 == "5" → true | |
=== | 5 === "5" → false | |
!= | 5 != "6" → true | |
!== | 5 !== "5" → true | |
> | 10 > 6 → true | |
< | 3 < 2 → false | |
>= | 7 >= 7 → true | |
<= | 5 <= 3 → false |
建議:始終優(yōu)先使用 ===
和 !==
避免隱式類型轉(zhuǎn)換錯誤。
&& | true && false → false | |
! | !true → false |
// &&:遇到假值立即返回
false && console.log("不會執(zhí)行");
// ||:遇到真值立即返回
true || console.log("不會執(zhí)行");
直接操作二進(jìn)制位。
& | 5 & 1 → 1 | ||||
^ | 5 ^ 1 → 4 | ||||
~ | ~5 → -6 | ||||
<< | 5 << 1 → 10 | ||||
>> | 5 >> 1 → 2 | ||||
>>> | -5 >>> 1 → 2147483645 |
其他運(yùn)算符
const status = age >= 18 ? "成年" : "未成年";
2. 類型運(yùn)算符
typeof
: 檢測變量類型typeof "Hello" → "string"
typeof null → "object" (歷史遺留問題)
instanceof
: 檢測對象類型[] instanceof Array → true
按順序執(zhí)行表達(dá)式,返回最后一個結(jié)果:
let a = (1 + 2, 3 + 4); // a = 7
delete
運(yùn)算符刪除對象屬性或數(shù)組元素:
const obj = { x: 1 };
delete obj.x; // obj變?yōu)?{}
void
運(yùn)算符執(zhí)行表達(dá)式并返回 undefined
:
<a href="javascript:void(0)">點擊不跳轉(zhuǎn)</a>
+
運(yùn)算符的類型轉(zhuǎn)換5 + "5" → "55" // 數(shù)字轉(zhuǎn)字符串
5 + true → 6 // true轉(zhuǎn)為1
5 + null → 5 // null轉(zhuǎn)為0
NaN
的特殊性NaN === NaN → false // 判斷NaN需用 isNaN()
0 / 0 → NaN // 無效運(yùn)算返回NaN
0.1 + 0.2 → 0.30000000000000004 // 使用toFixed()處理顯示
{} === {} → false // 對象比較的是內(nèi)存地址
掌握J(rèn)avaScript運(yùn)算符需注意:
嚴(yán)格相等:優(yōu)先使用 ===
代替 ==
短路運(yùn)算:利用 &&
和 ||
簡化條件判斷
類型轉(zhuǎn)換:注意隱式轉(zhuǎn)換帶來的意外結(jié)果
優(yōu)先級規(guī)則:復(fù)雜表達(dá)式建議用 ()
明確優(yōu)先級
閱讀原文:https://mp.weixin.qq.com/s/tGNWYSCqGRhEaM-yzq-3Mw