JS && || 陷阱 javascript 邏輯與、邏輯或 【轉】

來源:互聯網
上載者:User

標籤:class   type   div   efi   undefined   null   使用   運算   布爾   

通常來說邏輯運算a&&b和a||b分別是邏輯與運算和邏輯或運算,返回的是一個布爾值,要麼為true,要麼為false。比如在PHP裡面a&&b傳回型別永遠是布爾值,非true即false。而Javascript中中&& ||是一個陷阱,JS裡面的&&和||有點不走尋常路。總結JS && ||的規律:下面的a和b分別可以是一個值、一個變數、一個運算式。
  • JS對於邏輯與運算a&&b,如果a不成立(運算後結果是false,null,‘‘,0,undefined等值,下同)則返回a,如果a成立則返回b,如果使用&&串連了多個運算式,如果每個運算式都成立,則返回最後一個運算式的運算結果,如果有至少一個不成立,則返第一個不成立的運算式的運算結果
  • JS對於邏輯或運算a||b,則是從左邊開始,返回第一個成立的運算式的運算結果,如果全部不成立則返回最後一個運算式的運算結果。
  • &&優先順序高於||,先運算&&再用&&運算的結果去||運算。
看以下代碼var a=0&&-1 //得到0var b=3&&4; //得到4var c=0&&1&&2; //得到0var d=1&&0&&2; //得到0var e=1&&2&&3//得到3var f=0&&false&&‘‘&&1 //返回0var g=0||1; //得到1var h=1||0; //得到1alert(typeof(0||false||‘‘));//返回stringvar i=1||2&&3 //返回1var j=1&&2||3 //返回2  

JS && || 陷阱 javascript 邏輯與、邏輯或 【轉】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.