短路運算(邏輯運算是短路運算中最常見的一種)


寫在前面的知識:

Boolean強制轉換:

除了NaN、null、""、undefined、0、function這幾個為false外,其他皆為true;

關於轉換,等會我會再寫一篇,專門講string、int、Boolean轉換。

 

 

短路運算的符號:    ||   &&  !  或與非

 

短路運算的原理:當有多個表達式時,左邊的表達式值可以確定結果時,就不再繼續運算右邊的表達式的值;

 

短路運算的規則:

&& 找假,先看第一個表達式的值,如果第一個表達式不是布爾類型,強制轉換成布爾類型,轉換若后為false,則返回第一個值(不是被強制轉換后的值),否則返回第二個值

||   找真,先看第一個表達式的值,如果第一個表達式不是布爾類型,強制轉換成布爾類型,轉換若后為true,則返回第一個值(不是被強制轉換后的值),否則返回第二個值

!  非,   看表達式的值,如果表達式的值不是布爾類型,強制轉換成布爾類型,若為true,則返回false,否則返回true。

 

短路運算的例子:

javascript代碼:

<script>
        console.log("短路運算的&和|只比較第一個表達式,並由第一個表達式和運算符號決定返回哪個值");
        console.log("&&測試");
        console.log("&&找假");
        console.log(true&&true);
        console.log(true&&false);
        console.log(false&&true);
        console.log(false&&false);
        console.log(true&&"abs");//直接顯示第二個表達式的值abs
        console.log(false&&"abs");//直接顯示第一個表達式的值false
        console.log(""&&"abs");//什么都沒顯示,因為第一個表達式經Boolean強制轉換后是false,所以顯示第一個值
        console.log("abs"&&"qwe");//直接顯示qwe

        console.log("||測試");
        console.log("||找真");
        console.log(true||true);
        console.log(true||false);
        console.log(false||true);
        console.log(false||false);
        console.log(true||"abs");//直接顯示true
        console.log(false||"abs");//直接顯示abs
        console.log(""||"abs");//顯示abs
        console.log("abs"||"qwe");//顯示abs

        console.log("!測試");
        console.log(!true);
        console.log(!false);
        console.log(!"abs");//字符串abs經boolean強制轉換后是true,!true是false
        console.log(!"");//字符串經boolean強制轉換后是false, !false是true
</script>

控制台截圖:

                

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM