与(and)&&

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了与(and)&&相关的知识,希望对你有一定的参考价值。

/与(and)&&

var box = (5>3)&&(4>3); 
alert(box); //true

如果脸变的操作数有一个操作数不是boolean值得情况下,于运算就不一定返回布尔值。遵循的规则如下:

a.第一个操作数是对象,则返回第二操作数;

var age = {}&&(4>3);
alert(age);//true

b.第二个操作数是对象,则第一个操作数返回true,才返回第二个操作数,否则返回false;

var box = (4>3)&&{};
alert(box);//[object object]
var age = (3>4)&&{};
alert(age);//false
alert(typeof age);//boolean alert(typeof box);//object

c.有一个操作数是null,则返回null;

var box = null && (3>4);
var age = (3>4) && null;
alert(age);//flase
alert(box);//null

d.有一个操作时undefined,则返回undefined;

var box = undefined && (3>4);
var age = (3>4) && undefined;
alert(age);//flase
alert(box);//undefined
var hight = true && height;
alert(hight);//undefined

e.如果第一个为false,则不执行第二个,直接返回false

var box = false && (3>4);
var age = false && undefined;
alert(age);//flase
alert(box);//undefined

f. 第一个为单独number 或 string,执行第二,否则false

 

总结:看似有六条规定,实质就两条

1.第一个为false,不用执行第二个,直接返回false

2.第一个为true(包括Number、String、对象)或(null、undefined)。

  前者返回第二操作数;后者直接返回null、undefined。

 

以上是关于与(and)&&的主要内容,如果未能解决你的问题,请参考以下文章

PHP中逻辑运算符and/or与||/&&的一个坑

与(and)&&

和 0xff 做与 / & 0xff / AND 0xff 的作用是什么?

对这个带有 & 不带 = 的代码片段返回类型感到非常困惑

and, or, not 与 &&, ||, ! [关闭]

为啥短路不能防止与逻辑 AND (&&) 的不可达分支相关的 MissingMethodException?