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):
false0NaNnullundefined- 空字符串(
'')
其他所有值都是真值(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)算符就會返回后面的值。
二、|| 在代碼中的常見應(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' 會生效。
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ù)就不會被計(jì)算。這種特性可以用于優(yōu)化代碼邏輯:
const getData = () => {
console.log('Fetching data...');
return { key: 'value' };
};
const result = true || getData();
// 輸出:沒有輸出“Fetching data...”
// 解釋:因?yàn)樽髠?cè)的 `true` 是真值,`getData()` 不會被調(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); // 輸出:02. || 與三元運(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-05
uni-app開發(fā)微信小程序之H5壓縮上傳圖片的問題詳解
這次項(xiàng)目中做了一個(gè)圖片上傳,要求是大于2MB的就壓縮成2MB一下的再上傳,下面這篇文章主要給大家介紹了關(guān)于uni-app開發(fā)微信小程序之H5壓縮上傳圖片的問題,需要的朋友可以參考下2023-03-03

