"與" or "或"你了解多少

與或 你真的了解嗎?

&& || 在表達式1和表達式2之間其實是技巧的,熟練了,秒答

首先來看下&&(雙與) X && Y? 在這個表達式中首先計算X,并將其解釋為一個布爾值:

如果這個布爾值(X的布爾值)為false,那么返回false 不再計算Y,因為"與"的條件已經(jīng)失效

如果這個布爾值(X的布爾值)為true, 那么我們?nèi)匀徊恢?X && Y 的值是真還是假,直到我們?nèi)ビ嬎鉟 ,并把它也解釋為一個布爾值;不過有意思的是當X 為 true 時,整個將直接返回 Y

再來看看 ||(雙或) 在 X || Y 的時候,還是首先計算X并將其解釋執(zhí)行一個布爾值:

如果這個布爾值(X的布爾值)為true 那么將返回X,不再計算Y 因為"或"的條件已經(jīng)滿足

如果這個布爾值為false 那么我們?nèi)匀徊恢繶 || Y 是真還是假,直到我們計算 Y, 并且也把它解釋為一個執(zhí)行的布爾值

因此? 0 || 1 的計算結(jié)果為true(1)

表達式1 && 表達式2 和 表達式1 || 表達式2 只需要判斷第一個表達式的值:

||: 第一個表達式為真 ,直接返回表達式1

第一個表達式為假 ,直接返回表達式2

&&: 第一個表達式為假 ,直接返回表達式1

第一個表達式為真 ,直接返回表達式2

故 簡稱: 或 真1 假2? 與 假1 真2

console.log(1 && false);? //與 假1 真2 false

console.log(0 || NaN); //或 真1 假2 NaN

console.log(null && undefined); //與 假1 真2 null

console.log(false && null); //與 假1 真2 false

console.log(undefined || 0); //或 真1 假2 0

console.log(NaN || 1); //或 真1 假2 1

console.log(1 && null); //與 假1 真2 null

console.log(2 || NaN); //或 真1 假2 2

console.log(3 && false); //與 假1 真2 false

console.log(NaN || 0); //或 真1 假2 0

console.log(undefined && 2); //與 假1 真2 undefined

console.log(null && 3); //與 假1 真2 null

console.log(false || 7); //或 真1 假2 7


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,548評論 0 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評論 19 139
  • 1、使用typeof bar ===“object”來確定bar是否是一個對象時有什么潛在的缺陷?這個陷阱如何避免...
    深海鯽魚堡閱讀 745評論 1 1
  • 前言 最先接觸編程的知識是在大學里面,大學里面學了一些基礎(chǔ)的知識,c語言,java語言,單片機的匯編語言等;大學畢...
    oceanfive閱讀 3,395評論 0 7
  • “阿貴,帶小姐走?!? “是,少爺?!? 只見一個舞廳的...
    A照亮大叔的筆呢閱讀 500評論 0 2

友情鏈接更多精彩內(nèi)容