空值合並運算符(??)是一個邏輯運算符,當左側操作數為 null 或 undefined 時,返回右側的操作數,否則返回左側操作數,出於安全原因,禁止將??運算符與 && 和 || 運算符一起使用
注意:?? 運算符的優先級非常低,只略高於?和 =
如果沒有明確添加括號,不能將其與 || 或 && 一起使用
案例1:
1 const a = null ?? 'hello' 2 console.log(a) // 輸出:hello ( null 符合條件所以返回右側值 ) 3 4 const b = 0 ?? 'hello' 5 console.log(b) // 輸出:0 (0不等於null也不等於undefined,所以返回左側值)
案例2:關於輸入框非空的判斷
1 if ( value !== null && value !== undefined && value !== '' ){ 2 // ... 3 } 4 5 // 上面的代碼過於繁瑣要判斷很多個條件 可以運用空值運算符進行編寫 6 7 if ( value ?? '' !== '' ){ 8 // ... 9 }