1. 程式人生 > 其它 >js基礎---邏輯運算子

js基礎---邏輯運算子

    邏輯運算子
        !
            - 非運算可以對一個布林值進行取反,true變false false邊true
            - 當對非布林值使用!時,會先將其轉換為布林值然後再取反
            - 我們可以利用!來將其他的資料型別轉換為布林值
        
        &&
            - &&可以對符號兩側的值進行與運算
            - 只有兩端的值都為true時,才會返回true。只要有一個false就會返回false。
            - 與是一個短路的與,如果第一個值是false,則不再檢查第二個值
            - 對於非布林值,它會將其轉換為布林值然後做運算,並返回原值
            - 規則:
                    1.如果第一個值為false,則返回第一個值
                    2.如果第一個值為true,則返回第二個值
        
        ||
            - ||可以對符號兩側的值進行或運算
            - 只有兩端都是false時,才會返回false。只要有一個true,就會返回true。
            - 或是一個短路的或,如果第一個值是true,則不再檢查第二個值
            - 對於非布林值,它會將其轉換為布林值然後做運算,並返回原值
            - 規則:    
                    1.如果第一個值為true,則返回第一個值
                    2.如果第一個值為false,則返回第二個值
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            
            /*
             * JS中為我們提供了三種邏輯運算子
             * ! 非
             *     - !可以用來對一個值進行非運算
             *     - 所謂非運算就是值對一個布林值進行取反操作,
             *         true變false,false變true
             *     - 如果對一個值進行兩次取反,它不會變化
             *     - 如果對非布林值進行元素,則會將其轉換為布林值,然後再取反
             *         所以我們可以利用該特點,來將一個其他的資料型別轉換為布林值
             *         可以為一個任意資料型別取兩次反,來將其轉換為布林值,
             *         原理和Boolean()函式一樣
             * 
             * && 與
             *     - &&可以對符號兩側的值進行與運算並返回結果
             *     - 運算規則
             *         - 兩個值中只要有一個值為false就返回false,
             *             只有兩個值都為true時,才會返回true
             *         - JS中的“與”屬於短路的與,
             *             如果第一個值為false,則不會看第二個值
             * 
             * || 或
             *     - ||可以對符號兩側的值進行或運算並返回結果
             *     - 運算規則:
             *         - 兩個值中只要有一個true,就返回true
             *             如果兩個值都為false,才返回false
             *        - JS中的“或”屬於短路的或
             *             如果第一個值為true,則不會檢查第二個值
             
*/ //如果兩個值都是true則返回true var result = true && true; //只要有一個false,就返回false result = true && false; result = false && true; result = false && false; //console.log("result = "+result);
//第一個值為true,會檢查第二個值 //true && alert("看我出不出來!!"); //第一個值為false,不會檢查第二個值 //false && alert("看我出不出來!!"); //兩個都是false,則返回false result = false || false; //只有有一個true,就返回true result = true || false; result = false || true ; result = true || true ; //console.log("result = "+result); //第一個值為false,則會檢查第二個值 //false || alert("123"); //第一個值為true,則不再檢查第二個值 //true || alert("123"); var a = false; //對a進行非運算 a = !a; //console.log("a = "+a); var b = 10; b = !!b; //console.log("b = "+b); //console.log(typeof b); </script> </head> <body> </body> </html>