JavaScript?邏輯或?||?的妙用及相關(guān)知識普及
在 JavaScript 中,
||
(邏輯或運(yùn)算符)是一個(gè)非常常見但又容易被忽視的運(yùn)算符。它不僅能用于條件判斷,還能在日常編程中提供默認(rèn)值、防止錯(cuò)誤甚至優(yōu)化代碼邏輯。本文將帶你全面了解||
的用法及其相關(guān)知識。
一、邏輯或的基本用法
1. 什么是 ||
運(yùn)算符?
||
是 JavaScript 的邏輯運(yùn)算符之一,稱為“邏輯或”。它的核心功能是返回兩個(gè)值中的“真值”:
- 如果第一個(gè)操作數(shù)是真值,直接返回第一個(gè)操作數(shù)。
- 如果第一個(gè)操作數(shù)是假值,返回第二個(gè)操作數(shù)。
2. 什么是真值和假值?
在 JavaScript 中,以下值被認(rèn)為是假值(falsy):
false
0
NaN
null
undefined
- 空字符串(
''
)
其他所有值都是真值(truthy),包括:
- 非零數(shù)字(如
1
,-1
) - 非空字符串(如
'hello'
) - 對象(如
{}
或[]
)
3. 示例講解
console.log(true || false); // 輸出:true console.log(false || 'hello'); // 輸出:'hello' console.log(0 || 42); // 輸出:42 console.log('' || 'default'); // 輸出:'default' console.log(undefined || null || 'fallback'); // 輸出:'fallback'
在這些例子中,如果第一個(gè)值是假值,||
運(yùn)算符就會(huì)返回后面的值。
二、|| 在代碼中的常見應(yīng)用
1. 提供默認(rèn)值
最常見的用法之一是給可能為假值的變量提供一個(gè)默認(rèn)值。比如,當(dāng)函數(shù)的參數(shù)未傳遞時(shí):
function greet(name) { name = name || 'Guest'; console.log(`Hello, ${name}!`); } greet(); // 輸出:Hello, Guest! greet('Alice'); // 輸出:Hello, Alice!
如果 name
是 undefined
或空字符串,那么默認(rèn)值 'Guest'
會(huì)生效。
2. 防止報(bào)錯(cuò)
當(dāng)訪問一個(gè)可能不存在的對象屬性時(shí),可以通過 ||
提供默認(rèn)值,避免程序崩潰:
const user = { name: 'Alice' }; console.log(user.age || 'N/A'); // 輸出:N/A
這里 user.age
是 undefined
,||
返回了 'N/A'
。
3. 短路特性優(yōu)化代碼
||
的短路特性是指:一旦左側(cè)操作數(shù)為真值,右側(cè)操作數(shù)就不會(huì)被計(jì)算。這種特性可以用于優(yōu)化代碼邏輯:
const getData = () => { console.log('Fetching data...'); return { key: 'value' }; }; const result = true || getData(); // 輸出:沒有輸出“Fetching data...” // 解釋:因?yàn)樽髠?cè)的 `true` 是真值,`getData()` 不會(huì)被調(diào)用。
三、|| 和其他邏輯運(yùn)算符的對比
1. ||
與 &&
||
返回第一個(gè)真值,或最后一個(gè)假值。&&
返回第一個(gè)假值,或最后一個(gè)真值。
console.log(false || 'hello'); // 輸出:'hello' console.log(false && 'hello'); // 輸出:false console.log('world' || 0); // 輸出:'world' console.log('world' && 0); // 輸出:0
2. ||
與三元運(yùn)算符 ? :
有時(shí)可以用 ||
替代簡單的三元運(yùn)算符:
const value = input || 'default'; // 等價(jià)于: const value2 = input ? input : 'default';
但需要注意,||
的邏輯并不完全等同于三元運(yùn)算符,當(dāng)需要區(qū)分假值(如 0
和 false
)時(shí),三元運(yùn)算符更準(zhǔn)確。
推薦:
到此這篇關(guān)于JavaScript 邏輯或 || 的妙用及相關(guān)知識詳解的文章就介紹到這了,更多相關(guān)js 邏輯或 || 使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實(shí)現(xiàn)json對象數(shù)組按對象屬性排序操作示例
這篇文章主要介紹了JS實(shí)現(xiàn)json對象數(shù)組按對象屬性排序操作,涉及javascript使用sort方法針對json數(shù)組的遍歷與排序相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05uni-app開發(fā)微信小程序之H5壓縮上傳圖片的問題詳解
這次項(xiàng)目中做了一個(gè)圖片上傳,要求是大于2MB的就壓縮成2MB一下的再上傳,下面這篇文章主要給大家介紹了關(guān)于uni-app開發(fā)微信小程序之H5壓縮上傳圖片的問題,需要的朋友可以參考下2023-03-03