邏輯運算符:就是布爾值(true?和?false)的“算數(shù)”運算璧坟。邏輯運算符包括:邏輯與&&、邏輯或||和邏輯非赎懦!
一雀鹃、a? && b? 【邏輯與】
? ? ①、如果執(zhí)行 a 后返回true励两,則執(zhí)行 b 并返回 b 的值黎茎;
????②、如果執(zhí)行 a 后返回false当悔,則整個表達式返回 a 的值傅瞻,b 不執(zhí)行;
運算過程:
? ? ? ? ? ? 1嗅骄、計算&&第一個操作數(shù)(左邊的值),如果左側表達式的值可轉換為?false(如?null饼疙、undefined溺森、NaN、0、""屏积、false)医窿,那么就會結束運算,直接返回第一個操作數(shù)的值炊林。
? ? ? ? ? ? 2姥卢、如果左側的值為true,計算&&第二個操作數(shù)(右側的值)铛铁,返回該值隔显。
二却妨、a || b? 【邏輯或】
? ? ①饵逐、如果執(zhí)行 a 后返回true,則整個表達式返回 a 的值彪标,b 不執(zhí)行倍权。
? ? ②、如果執(zhí)行 a 后返回false捞烟,則執(zhí)行 b 并返回 b 的值薄声;
運算過程:
????????????1、計算 || 第一個操作數(shù)(左邊的值)题画,如果左側表達式的值可轉換為?true默辨,那么就會結束運算,直接返回第一個操作數(shù)的值苍息。
? ? ? ? ? ? 2缩幸、如果左側的值為false(如?null、undefined竞思、NaN表谊、0、""盖喷、false)爆办,計算 || 第二個操作數(shù)(右側的值),返回該值课梳。
三距辆、!a 【邏輯非】
????????邏輯非運算!是布爾取反操作(NOT)暮刃。作為一元運算符挑格,直接放在操作數(shù)之前,把操作數(shù)的值轉換為布爾值沾歪,然后取反并返回漂彤。
注意:邏輯與和邏輯或運算的返回值不必是布爾值,但是邏輯非運算的返回值一定是布爾值。