全面了解javascript運算符之邏輯運算符
前面的話
邏輯#運算子對運算元進行布林運算,常常和關係運算子一樣配合使用。邏輯運算子將多個關係表達式組合起來組成一個更複雜的表達式。邏輯運算子分為邏輯非'!'、邏輯與'&&'、邏輯或'||'3種,本文將介紹這三種邏輯運算子
邏輯非
#邏輯非運算元由嘆號(!)表示,可以套用於ECMAScript中的任何值。無論這個值是什麼資料型別,這個運算子都會傳回一個布林值。邏輯非運算子首先會將它的運算元轉換成一個布林值,然後再對其求反
邏輯非對運算元轉為布林型別的轉換型別與Boolean()轉型函數相同,只不過最後再將結果取反。而如果同時使用兩個邏輯非運算符,實際上就會模擬Boolean()轉型函數的行為
console.log(!!undefined);//false console.log(!!null);//false console.log(!!0);//false console.log(!!-0);//false console.log(!!NaN);//false console.log(!!'');//false console.log(!!false);//false
console.log(!!{});//true console.log(!![]);//true console.log(!!new Boolean(false));//true console.log(!!false);//false console.log(!!new Boolean(null));//true console.log(!!null);//false
//Boolean 变量(bFound)用于记录检索是否成功。找到问题中的数据项时,bFound 将被设置为true,!bFound将等于false,意味着运行将跳出while循环 var bFound = false; var i = 0; while (!bFound) { if (aValue[i] == vSearchValues) { bFound = true; } else { i++; } }
#邏輯與
邏輯與運算子由兩個和號(&&)表示,有兩個運算元,只有在兩個運算元都為true時,結果才會回傳true,否則傳回false
//逻辑与(&&)的真值表 第一个操作数 第二个操作数 结果 true true true true false false false true false false false alse
邏輯與運算可以套用到任何類型的操作數,而不僅僅是布林值。如果其中一個運算元不是布林值,邏輯與運算不一定會傳回布林值
邏輯與運算屬於短路操作,如果第一個運算元能夠決定結果,那麼就不會再對第二個操作數求值
對於邏輯與而言,如果第一個操作數是false,則無論第二個操作數是什麼值,結果都是false,則傳回第一個操作數;如果第一個運算元為true,則結果的真假和第二個運算元的真假相同,則傳回第二個運算元
//除了false、undefined、null、+0、-0、NaN、''这7个假值,其余都是真值 console.log('t' && ''); //因为't'是真值,所以返回'' console.log('t' && 'f'); //因为't'是真值,所以返回'f' console.log('t' && 1 + 2); //因为't'是真值,所以返回3 console.log('' && 'f'); //因为''是假值,所以返回'' console.log('' && ''); //因为''是假值,所以返回''
var i = 1; var result = (true && i++); console.log(result,i);//因为true是真值,所以执行i++,i是2,result是1 var i = 1; var result = (false && i++); console.log(result,i);//因为false是假值,所以不执行i++,i是1,result是false
邏輯與運算子可以多個連用,傳回第一個布林值為false的表達式的值
console.log(true && 'foo' && '' && 4 && 'foo' && true);// ''
關係運算子的優先權比邏輯與(&&)和邏輯或(||)的優先權高,所以類似表達式可以直接書寫,不用補充圓括號
if(a+1==2 && b+2==3){ //Todo }
可以使用邏輯與運算子來取代if結構
if (a == b) { doSomething(); } // 等价于 (a == b) && doSomething();
邏輯與運算子常用於回呼函數使用中
//若没有给参数a传值,则a为默认的undefined,是假值,所以不执行a(),防止报错,如果给参数a传值,则执行函数a() function fn(a){ if(a){ a(); } } //等价于 function fn(a){ a && a(); }
邏輯或
##邏輯或運算子由兩個垂直線(||)表示,有兩個運算元,只有在兩個運算元都是false時,結果才會回傳false,否則傳回true
//逻辑或(||)的真值表 第一个操作数 第二个操作数 结果 true true true true false true false true true false false false
對於邏輯或而言,如果第一個操作數是true,則無論第二個操作數是什麼值,結果都是true,則傳回第一個操作數;如果第一個運算元是fales,則結果的真假和第二個運算元的真假相同,則傳回第二個運算元
console.log('t' || '');//因为't'是真值,所以返回"t" console.log('t' || 'f');//因为't'是真值,所以返回"t" console.log('' || 'f');//因为''是假值,所以返回"f" console.log('' || '');//因为''是假值,所以返回""
##
var i = 1; var result = (true || i++); console.log(result,i);//因为true是真值,所以不执行i++,result是true,i是1 var i = 1; var result = (false || i++); console.log(result,i);//因为false是假值,所以执行i++,i是2,result是1
同樣地,邏輯或運算子也可以多個連用,傳回第一個布林值為true的運算式的值
console.log(false || 0 || '' || 4 || 'foo' || true);// 4
邏輯或運算子常用於為變數設定預設值
//如果没有向参数p传入任何对象,则将该参数默认设置为空对象 function fn(p){ p = p || {}; }

#
以上是全面了解javascript運算符之邏輯運算符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

python憑藉其簡單易讀的語法,廣泛應用於廣泛的領域。掌握Python語法的基礎架構至關重要,既可以提高程式效率,又能深入理解程式碼的運作方式。為此,本文提供了一個全面的心智圖,詳細闡述了Python語法的各個面向。變數和資料類型變數是Python中用於儲存資料的容器。心智圖展示了常見的Python資料類型,包括整數、浮點數、字串、布林值和列表。每個資料類型都有其自身的特性和操作方法。運算符運算符用於對資料類型執行各種操作。心智圖涵蓋了Python中的不同運算子類型,例如算術運算子、比

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務

在Go語言中,運算子按照優先權從高到低的順序進行計算。常見的運算子的優先順序:1、括號:()(最高優先權,用於強制改變運算順序);2、單目運算子;3、乘性運算子;4、加性運算子; 5.移位運算子;6、位元運算子;7、比較運算子;8、邏輯運算子;9、條件運算子(三元運算子);10、賦值運算子等等。

python運算子簡介運算子是特殊符號或關鍵字,用於執行兩種或多種運算元之間的運算。 Python提供了多種運算符,涵蓋廣泛的用途,從基本的數學運算到複雜的資料操作。數學運算子數學運算子用於執行常見的數學運算。它們包括:運算子運算元範例+加法a+b-減法a-b*乘法a*b/除法a/b%模運算(取餘數)a%b**冪運算a**b//整除(丟棄餘數) a//b邏輯運算子邏輯運算子用於將布林值連接起來並對條件進行求值。它們包括:運算子操作範例and邏輯與aandbor邏輯或aorbnot邏輯非nota比較運算
