前言:
而今看官们对“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
今天内容有点多,但都是基础的东西。童靴们自己打开编辑器练习一下,看看不同类型的操作数都会返回什么结果。