js中的||與&&用法

1、||(邏輯或)

只有前後都是false的時候才返回false,否則返回true。

alert(2||1);//2

前面2是true,後面1也是true,結果是2,

?
alert('a'||1);//'a'

前面'a'是true,後面1也是true;測試結果是'a',

?
alert(''||1);//1

前面”是false,後面1是true,而返回結果是1。

?
alert('a'||0);//'a'

前面'a'是true,而後面0是false,返回結果是'a',

?
alert(''||0);//0

前面”是false,後面0同樣是false,返回結果是0

?
alert(0||'');//''

前面0是false,後面”是false,返回結果是”

結論:

var c=a()||b();

a() || b() :如果執行a()後返回true,則整個表達式返回a()的值,b()不執行;如果執行a()後返回false,則執行b()並返回b()的值;

只要“||”前面爲false,不管“||”後面是true還是false,都返回“||”後面的值。

只要“||”前面爲true,不管“||”後面是true還是false,都返回“||”前面的值。


2.&&(邏輯與)

只有前後都是true的時候才返回true,否則返回false。

alert(''&&1);//''

結是返回”,“&&”前面”是false,後面是1是true。

?
alert(''&&0);//''

結是返回”,“&&”前面”是false,後面是0也是false。

?
alert('a'&&1);//1

結是返回1,“&&”前面”a是true,後面是1也是true。

?
alert('a'&&0);//0

結是返回0,“&&”前面”a是true,後面是0是false。

?
alert('a'&&'');//''

結是返回”,“&&”前面”a是true,後面是”是false。

?
alert(0&&'a');//0

結是返回0,“&&”前面”0是false,後面是'a'是true。

?
alert(0&&''); //0

結是返回0,“&&”前面”0是false,後面是”也是false。


var c=a()&&b();

a() && b() :如果執行a()後返回true,則執行b()並返回b的值;如果執行a()後返回false,則整個表達式返回a()的值,b()不執行;

只要“&&”前面是false,無論“&&”後面是true還是false,結果都將返“&&”前面的值;

只要“&&”前面是true,無論“&&”後面是true還是false,結果都將返“&&”後面的值;


       在js邏輯運算中,0、”“、null、false、undefined、NaN都會判爲false,其他都爲true

  && 優先級高於 ||

  alert((1 && 3 || 0) && 4); //結果4 ①
  alert(1 && 3 || 0 && 4); //結果3 ②
  alert(0 && 3 || 1 && 4); //結果4 ③

  分析:
  語句①:1&&3 返回3 => 3 || 0 返回 3 => 3&&4 返回 4
  語句②:先執行1&&3 返回3,在執行0&&4返回0,最後執行結果比較 3||0 返回 3
  語句③:先執行0&&3 返回0,在執行1&&4返回4,最後執行結果比較 0||4 返回 4

     


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章