&&

最近在看書,看到類似於 這樣的代碼 return a && b


&& 表示邏輯與(and)  當運算符兩邊的表達式的結果都爲true時,整個運算結果才爲true,否則,只要有一方爲false,則結果爲false。
這只是它最簡單的理解。看簡單的應用。


if (a && b) {  //do something}    也就是當a 和 b都爲真的時候,纔會執行 {} 裏的語句。

對於 a && b 用於函數或者賦值的時候,這時候,應該這麼理解,如果a和b均爲數值或字符串時,且a爲真的時候(不是null,undefined,0,false etc),會返回b(或者返回b的值),否則,會返回一個假 (null,false,undefined之類) ;如果a或b爲布爾值或者同時均爲布爾值時,會返回一個布爾值。



我們看簡單的代碼,幫助理解
例子1:
var a = 1 && "abc";
  alert(a);
  var b = 0 && 1;
  alert(b);
會彈出兩個窗口,第一個是abc,第二個是0 。 對於 var b = 0 && 1; 你可以設置爲 var b = null && 1 ; 或undefined , 都會輸出假。


例子2:
  function func() {
      this.hello=function () {alert("hello");};
 this.a="testing";
  }
  var a = new func();
  function returnValue() {
 this.v="v";
 var i=10;
      return this.p && a.a;
  }
alert(returnValue());

這時候,會彈出undefined   .


例子3:

  var a = 1 && 9; 
  var b = a>0 && a !=1;
  alert(b);

會彈出true ,實際上,對於a>0 和a!= 1來說,都是判斷,就會返回布爾值,所以,b得到的必然是布爾值。 如果
 var b = a>0 && false;

必然b會得到false 這個布爾值。



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