&&

来源:互联网 发布:游戏脚本python 编辑:程序博客网 时间:2024/06/05 07:02
最近在看书,看到类似于 这样的代码 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 这个布尔值。