首页 > 网站 > WEB开发 > 正文

alert(a&&b)和alert(a||b)

2024-04-27 15:08:44
字体:
来源:转载
供稿:网友

最近看前端面试题看到这个题目,还不知道怎么回事,结果自己在控制台试了一下,加上看了网上别人的解释,这里记录说明如下:

1、先说说 || 的情况

看看以下几种情况分别得到的结果:

1、alert(0||1),得到的结果是1;

2、alert(0||"a"),得到的结果是a;

3、alert(1||2),得到的结果是1;

4、alert(1||0),得到的结果是1;

5、alert(''||0),得到的结果是0;

6、alert(''||1),得到的结果是1;

7、alert('a'||0),得到的结果是a;

8、alert('a'||1),得到的结果是a;

||(逻辑或)一般来说是在符号前后的数据都为false的情况下才得到false,其余的情况都是true。 

总结上面的规律可以发现:||符号前的数据若为false,则不管后面的数据是什么,alert(a||b)得到的结果都是b,即符号后面的值;若前面的值为true,则不管后面的值是什么,alert(a||b)得到的值都是a,即符号前面的值。

2、再看&&的情况

还是刚刚的几个例子

看看以下几种情况分别得到的结果:

1、alert(0&&1),得到的结果是0;

2、alert(0&&"a"),得到的结果是0;

3、alert(1&&2),得到的结果是2;

4、alert(1&&0),得到的结果是0;

5、alert(''&&0),得到的结果是'';

6、alert(''&&1),得到的结果是'';

7、alert('a'&&0),得到的结果是0;

8、alert('a'&&1),得到的结果是1;

&&(逻辑与)一般来说是在符号前后的数据都为true的情况下才得到true,其余的

情况都是false。 

总结上面的规律可以发现:&&符号前的数据若为false,则不管后面的数据是什么,

alert(a&&b)得到的结果都是a,即符号前面的值;若前面的值为true,则不管后面的值

是什么,alert(a&&b)得到的值都是b,即符号后面的值。

逻辑运算符,||和&&都是遵行短路原则,只要确定了符号前面的真假,既可确定返回值。

这里需要说明的是&&的优先级是高于||的。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表