【原創】Js和PHP中的||、&&運算子異同點

來源:互聯網
上載者:User
在學習javascript中,發現邏輯與&&、邏輯或||這兩個運算子在變數賦值中的使用很特殊,和之前熟悉的PHP不同!

1、條件陳述式

條件陳述式,比如if判斷,與和或的理解都是一樣的,不存在異議:

(1)|| 當條件中有一個滿足true,則進入語句執行

(2)&& 條件必須全部滿足true,則進入語句執行

2、變數賦值

PHP:

$person  = array();$param = $arr['name'] || 'Bom';var_dump($param); //true,在PHP中邏輯或仍然是條件判斷性質,變數是一個布爾值var_dumo($param);//false , 在PHP中邏輯與也仍然是條件判斷性質,變數是一個布爾值

JS的邏輯與和或理解是:

(1)|| 代表的是 如果左邊的true就返回左邊 否則返回右邊

(2)&& 代表的是 如果左邊返回的true就返回右邊 否則返回左邊

有什麼用處?可以防止變數賦值的時候拋出typeError異常,或者說可以用來做變數預設值,比如:

var person= {}; //Null 物件var undefinedRes =   person.name;//undefined ,嘗試檢索一個不存在的成員元素,返回 undefinedvar typeErrorRes =   person.name.age;//typeError ,嘗試檢索一個undefined值,會導致typeError異常var status = person.name || "Bom";//Bom,用||取預設值Bom。person.name返回false,所以取邏輯或右邊的值var name = person.name && "Bom";//undefined,person.name返回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.