JavaScript中 ?、!和?? 的用法及區(qū)別詳解
1. 可選鏈操作符 ?.
用法: obj?.prop 或 obj?.[expr]
功能: 當嘗試訪問一個深層嵌套的屬性時,如果對象obj是null或undefined,使用?.操作符可以避免拋出錯誤,而是直接返回undefined,而不是嘗試訪問不存在的屬性導致的錯誤。
示例:
const user = null; console.log(user?.name); // 輸出 undefined 而不是拋出錯誤
2. 非空斷言操作符 !.
用法: obj!.prop
功能: 這個操作符告訴TypeScript編譯器你確定該表達式絕對不會為null或undefined,從而避免了類型檢查時的警告。需要注意的是,這僅影響編譯時的類型檢查,并不會改變運行時的行為,因此如果實際上該表達式為null或undefined,依然會導致運行時錯誤。
示例: (此示例假設在TypeScript環(huán)境下)
let user: User | null = fetchUserData(); console.log(user!.name); // 告訴TypeScript你確定user不是null或undefined
3. 空值合并操作符 ??
用法: value ?? fallback
功能: 當value為null或undefined時,返回fallback指定的值;否則,返回value本身。這與邏輯或||操作符不同,因為||會在value為任何假值(如0、false、空字符串等)時就返回fallback,而??只在value嚴格等于null或undefined時才進行替換。
示例:
let num = null; const result = num ?? 42; // result為42,因為num是null
總結起來,?.幫助安全地訪問對象屬性,!.用于告訴TypeScript編譯器忽略可能的null或undefined檢查(使用時要確保安全),而??則是在值為null或undefined時提供一個替代值。
到此這篇關于JavaScript中 ?、!和?? 的用法及區(qū)別詳解的文章就介紹到這了,更多相關JavaScript ?、!、??用法及區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用Sticky組件實現帶sticky效果的tab導航和滾動導航的方法
sticky組件,通常應用于導航條或者工具欄,當網頁在某一區(qū)域滾動的時候,將導航條或工具欄這類元素固定在頁面頂部或底部,方便用戶快速進行這類元素提供的操作2016-03-03

