龙空技术网

JavaScript 基础概念——布尔操作符

小白前端 82

前言:

而今看官们对“js竖线”大致比较着重,兄弟们都想要剖析一些“js竖线”的相关内容。那么小编在网上搜集了一些关于“js竖线””的相关内容,希望各位老铁们能喜欢,我们快快来学习一下吧!

最近一阵时间因为公司项目快要上线,所以文章会更新的很慢,望童靴们见谅。

用宝珠打扮自己,不如用知识充实自己!

关注小白前端,持续收到文章推送。

布尔操作符

布尔操作符一共有三个:逻辑非(!),逻辑与(&&),逻辑或(||)。在开发中,布尔操作符用的很多。像if...else就经常要用到它去测试两个值。

逻辑非

逻辑非用一个叹号(!)表示。逻辑与操作符会把操作数先转换为布尔值,然后在对其求反。

逻辑非遵循下面的规则:

操作数是对象,返回false;

操作数是空字符串,返回true;

操作数是非空字符串,返回false;

操作数是数值0,返回true;

操作数是任何非0数值(包括无穷Infinity),返回false;

操作数是null或者undefined或者NaN,则返回true;

我们来看几个例子:

我们在浏览器控制台看一下结果:

逻辑非也可以把一个值转换为对应的布尔值,只需要在加一个叹号表示,如下例子:

console.log(!!0) //false

console.log(!!"") //false

console.log(!!"abc") //true

逻辑与

逻辑与用两个和号(&&)表示,有两个操作数。如下例子:

var result=true && false

逻辑与的规则如下:

如果两个操作数都是true,则结果返回true;

如果两个操作数都是false,则结果返回false;

如果两个操作数中任意一个是false,则结果返回false;

逻辑与操作符可以用于任何操作数,不仅仅布尔值。在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值了。那么,它应该遵循以下的规则:

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

如果两个都是对象,则返回第一个操作数;

如果第一个操作数是null,则返回null;

如果第一个操作数是undefined,则返回undefined;

如果第一个操作数是NaN,则返回NaN;

逻辑与操作属于短路操作,如果第一个操作数能决定结果,那么就不会对第二个操作数求值了。如果第一个操作数是false,那么第二个操作数是什么值,结果都不会是true了。

如下:

var a=true;

console.log(a && b); //发生错误

如上因为a是true,所以对第二个操作数进行求值。但因为b没有声明,因此会报错。

逻辑或

逻辑或用两个竖线(||)表示,有两个操作数。如下例子所示:

var result=true || false;

逻辑或的规则如下:

如果两个操作数都是true,则返回true;

如果两个操作数都是false,则返回false;

如果两个操作数任意一个是true,则返回 true;

和逻辑与相似,如果有一个操作数不是布尔值,逻辑或也不一定返回布尔值。它遵循如下规则:

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

第一个操作数的求值是false,则返回第二个;

如果两个操作数都是对象,则返回第一个;

如果两个操作数是null,则返回null;

如果两个操作数是NaN,则返回NaN;

如果两个操作数是undefined,则返回undefined;

如下例子:

console.log(true || false); //true

console.log(null || "123"); // 123

console.log(true || undefined); //true

console.log(0 || 2); //2

console.log(false || true); //true

今天内容有点多,但都是基础的东西。童靴们自己打开编辑器练习一下,看看不同类型的操作数都会返回什么结果。

标签: #js竖线 #js字符串布尔