你真的理解了JavaScript的邏輯操作符嗎?

來源:互聯網
上載者:User

(1)與操作符(&&)
與操作符的執行過程如下:javascript依次擷取每一個運算元,將它們轉換為布爾變數,如果是false,則直接返回這個運算元的值(注意,返回的是轉換前的原值,不一定是布爾類型),中斷後面運算元的處理;否則繼續處理下一個運算元。如果直到最後一個運算元仍然對應布爾變數true,則返回最後這個運算元的值,下面的代碼示範了其執行原理:

var a="1" && true && 0 && false && "abc";
alert(a);  //可見a的值是0
var b="abc" && true && "123";
alert(b);  //可見b的值是"123";

(2)或操作符(||)
和與操作符類似,或操作符的執行過程如下:javascript依次擷取每一個運算元,將它們轉換為布爾變數,如果是true,則直接返回這個運算元的值,中斷後面運算元的處理;否則繼續下一個運算元。如果知道最後一個運算元仍然對應布爾變數false,則返回這個運算元的值。下面的代碼示範了其執行原理:

var a="abc" || "123";
alert(a);  //可見a的值是"abc"
var b=false || "" || 0;
alert(b);  //可見a的值是0

或操作符的這一性質在開發中經常會用到。
(3)非操作符(!)
和前兩種操作符不同,非操作符始終返回布爾類型的變數,例如:

var a=! "abc";
alert(a);  //顯示a的值為false

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.