最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript?邏輯或?||?的妙用及相關(guān)知識普及

 更新時(shí)間:2024年12月07日 14:13:21   作者:Peter-Lu  
本文給大家介紹了JavaScript中的邏輯或運(yùn)算符||的用法,包括其基本概念、真值和假值、常見應(yīng)用以及與其他邏輯運(yù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)算符就會返回后面的值。

二、|| 在代碼中的常見應(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!

如果 nameundefined 或空字符串,那么默認(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.ageundefined|| 返回了 '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); // 輸出:0

2. || 與三元運(yùn)算符 ? :

有時(shí)可以用 || 替代簡單的三元運(yùn)算符:

const value = input || 'default'; // 等價(jià)于:
const value2 = input ? input : 'default';

但需要注意,|| 的邏輯并不完全等同于三元運(yùn)算符,當(dāng)需要區(qū)分假值(如 0false)時(shí),三元運(yùn)算符更準(zhǔn)確。

推薦:

到此這篇關(guān)于JavaScript 邏輯或 || 的妙用及相關(guān)知識詳解的文章就介紹到這了,更多相關(guān)js 邏輯或 || 使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript位置參數(shù)實(shí)現(xiàn)原理及過程解析

    JavaScript位置參數(shù)實(shí)現(xiàn)原理及過程解析

    這篇文章主要介紹了JavaScript位置參數(shù)實(shí)現(xiàn)原理及過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • JS封裝通過className獲取元素的函數(shù)示例

    JS封裝通過className獲取元素的函數(shù)示例

    這篇文章主要介紹了JS封裝通過className獲取元素的函數(shù),涉及javascript針對頁面元素屬性的遍歷與數(shù)組相關(guān)操作技巧,需要的朋友可以參考下
    2016-12-12
  • Ajax和Comet技術(shù)總結(jié)

    Ajax和Comet技術(shù)總結(jié)

    Ajax是一種技術(shù),一種能夠向服務(wù)器請求額外的數(shù)據(jù)而無需卸載頁面的技術(shù),能夠使網(wǎng)頁具備更優(yōu)的用戶體驗(yàn)。Ajax技術(shù)的核心是XMLHttpRequest對象(XHR)。本文從XHR開始談起,理解Ajax技術(shù)的特點(diǎn),再對跨域以及Comet等技術(shù)進(jìn)行簡要理解和總結(jié)。下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript Base64 作為文件上傳的實(shí)例代碼解析

    JavaScript Base64 作為文件上傳的實(shí)例代碼解析

    這篇文章主要介紹了JavaScript Base64 作為文件上傳的實(shí)例代碼解析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • 詳解Webpack多環(huán)境代碼打包的方法

    詳解Webpack多環(huán)境代碼打包的方法

    這篇文章主要介紹了詳解Webpack多環(huán)境代碼打包的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • CSS3 動(dòng)畫卡頓性能優(yōu)化的完美解決方案

    CSS3 動(dòng)畫卡頓性能優(yōu)化的完美解決方案

    今天小編就為大家分享一篇關(guān)于css3 動(dòng)畫卡頓性能優(yōu)化的完美解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-09-09
  • 微信小程序下拉框組件使用方法

    微信小程序下拉框組件使用方法

    這篇文章主要為大家詳細(xì)介紹了微信小程序下拉框組件使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • js將字符轉(zhuǎn)換為UTF-8字符的工具

    js將字符轉(zhuǎn)換為UTF-8字符的工具

    在下面的文本框中輸入中文文字,按“轉(zhuǎn)化”,即可將其轉(zhuǎn)化為UTF-8字符。
    2010-06-06
  • onclick與listeners的執(zhí)行先后問題詳細(xì)解剖

    onclick與listeners的執(zhí)行先后問題詳細(xì)解剖

    javascript中onclick與listeners的執(zhí)行先后問題一直都是大家所疑惑的地方,接下來將為大家解決此疑惑,感興趣的朋友可以了解下哦
    2013-01-01
  • JavaScript中時(shí)間日期函數(shù)new?Date()詳解(5種獲取時(shí)間戳的函數(shù))

    JavaScript中時(shí)間日期函數(shù)new?Date()詳解(5種獲取時(shí)間戳的函數(shù))

    這篇文章主要給大家介紹了關(guān)于JavaScript中時(shí)間日期函數(shù)new?Date()的相關(guān)資料,主要講的是JS中5種獲取時(shí)間戳的函數(shù),new Date()是JavaScript中用于獲取當(dāng)前日期和時(shí)間的內(nèi)置函數(shù),需要的朋友可以參考下
    2024-04-04

最新評論

潜山县| 称多县| 拉孜县| 林口县| 宜黄县| 高青县| 友谊县| 阿拉善盟| 孝感市| 田阳县| 洛宁县| 泉州市| 榆树市| 台东县| 遵化市| 南丹县| 正蓝旗| 昌宁县| 抚远县| 镇巴县| 林甸县| 封开县| 皋兰县| 庆阳市| 绥阳县| 河东区| 盐城市| 金沙县| 清原| 阿拉善左旗| 保靖县| 苏尼特右旗| 临桂县| 伽师县| 呼伦贝尔市| 汝城县| 教育| 苏尼特右旗| 巨野县| 东方市| 利川市|