js短路, 短路運算子的使用

2021-09-25 21:56:17 字數 935 閱讀 6572

正如標題所言,js中||和&&的特性幫我們精簡了**的同時,也帶來了**可讀性的降低。這就需要我們自己來權衡了,下面有個不錯的示例,在js邏輯運算中,0、""、null、false、undefined、nan都會判為false,其他都為true.

||,先計算第乙個運算數,如果可以被轉換成true,則返回左邊這個表示式的值,否則計算第二個運算數。即使||運算子的運算數不是布林值,任然可以將它看作布林or運算,因為無論它返回的值是什麼型別,都可以被轉換為布林值。

利用它對非布林型的值會將其返回的特性:對非布林型的運算數使用||,用於選取一組備選值中的第乙個定義了的並且非空的值(第乙個為非false的值)

例:var max = max_width || obj.max_width || 500 ;

var attr = attr || 「」;這個運算經常用來判斷乙個變數是否已定義,如果沒有定義就給他乙個初始值,在給函式的引數定義乙個預設值的時比較有用。

&&,它先計算第乙個表示式,若為假,就不會去處理第二個表達;否則繼續處理後繼表示式。從左到右選取表示式的第乙個為非true的表示式的值,如果一直未找到則返回最後乙個表示式的值。

例:(其中的味道還需要細心琢磨)

2 && 『s1』 && 『123』 && 『sss』 表示式的值等於 『sss』

2 && 『s1』 && 『』 && 『sss』 表示式的值等於 『』

2 && 『s1』 && nan && 'sss』表示式的值等於 nan

if(a >=5)

可以簡成:

a >= 5 && alert(「你好」);

!!,typeof 5和typeof !!5的區別,這是一種更嚴謹的寫法,的作用是把乙個其他型別的變數轉成的bool型別。例如, if(!!attr) <=> if(attr)

js中||和&&的特性幫我們精簡了**的同時,也帶來了**可讀性的降低。這就需要我們自己來權衡了。

JS中短路運算子 和

在js函式中我們經常會使用到短路運算子,主要是邏輯與 和 邏輯或 1 邏輯與 的運算方式 var a 5 6 console.log a 返回的結果為 6 如果邏輯與運算子左邊的值布林轉換後為 true,那麼返回右邊的值 不管右邊的值是真還是假 var a false 6 console.log a...

javascript的短路運算子

短路運算子 先來段 左邊為 true 時 返回右邊 的執行結果 2 1 a 1 結果列印 後面的 執行結果 也就是 1 左邊為 false 時 返回左邊 的執行結果 2 1 a 1 結果列印 前面的 執行結果 也就是 false 以上我們得出結論 短路運算子 只有前面的 為 真 true 時才執行後...

運算子短路求值原理

運算子有乙個短路求值原理,比如a b,如果出現在條件判斷語句中,我們理解的就是a和b都要是true才能完成判斷,實際執行過程中,計算機先判斷a是否為真,若a為真再判斷b是否為真,但若a為假,則後面不會再看b的真假,也就是說如果b為乙個表示式,則不會執行這個表示式,這就是短路求值原理,舉例如下 實現求...