js的短路


短路問題經常是發生在邏輯運算符中的邏輯與(&&)、邏輯或(||)

  1、邏輯或(||)

    他是一真則真,當邏輯或前面的表達式結果為1或true時,邏輯或后面的表達式是不會執行的

  2、邏輯與(&&)

    他是一假則假,當邏輯與前面的表達式結果為0或false時,邏輯與后面的表達式是不會執行的

  3、小知識點:當一個表達式中既有邏輯與,又有邏輯或,那么先執行邏輯與,邏輯與的優先級比邏輯或高

  用幾個例子來說明一下

  var a=1,b=2,c="博客園";

  a || b && c="百度";

  console.log(c)

  解析:由於上面這個表達式中既有邏輯與,又有邏輯或,所以先執行邏輯與

  上面的表達式也就演變成了:a ||  (b && c="百度"); a=1,所以為true,那么遇到真了,后面的(b && c="百度")這個表達式就不會執行了,自然而然c="百度"這句話就不會執行,所以c="博客園"。

 

  那么如果(a || b) && c="百度"  

  console.log(c)

  解析:因為有了括號,所以先執行括號里的,a=1為true,根據邏輯與的短路,遇到真了后面的依然會繼續執行,遇到假的后面才不會執行,所以就變成了 true && c="百度";所以c被重新賦值了,所以c="百度"

  

 


免責聲明!

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



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