问题:看到很多代码if(!!attr),为什么不直接写if(attr)?
其实这是一种更严谨的写法:请测试 typeof 5和typeof !!5的区别。!!的作用是把一个其他类型的变量转成的bool类型
下面主要讨论下逻辑运算符&&和||。
几乎所有语言中||和&&都遵循“短路”原理,如&&中第一个表达式为假就不会去处理第二个表达式,而||正好相反。
js也遵循上述原则。但是比较有意思的是它们返回的值。
代码:var attr = true && 4 && “aaa”;
那么运行的结果attr就不是简单的true或这false,而是”aaa”
再来看看||:
代码:var attr = attr || “”;这个运算经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值,这在给函数的参数定义一个默认值的时候比较有用。
(备:在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true)
if(a >=5){
alert("你好");
}
可以写成:
a >= 5 && alert("你好");
这样只需一行代码就搞定。但是需要注意的一点就是:js中||和&&的特性帮我们精简了代码的同时,也带来了代码可读性的降低。一方面精简js代码,能实质性的减少
网络流量,尤其是大量应用的js公用库。
分享到:
相关推荐
主要介绍了Java中&&与&,||与|的区别的相关资料,需要的朋友可以参考下
&&是逻辑与运算符,||是逻辑或运算符,都是逻辑运算符,两边只能是bool类型 &与| 既可以进行逻辑运算,又可以进行位运算,两边既可以是bool类型,又可以是数值类型 区别: if (A && B) 如果 A 为 false ,整个...
今天在做逻辑运算符的时候遇到一个小问题一直转不过弯来,var a=(undefined&&123)||(3||5)的返回值是什么? 首先是||的返回值问题: ||的返回值会返回最早遇到非以下类型的值: NaN null undefined 0 false; 所以3||...
这2个运算符经常用到,总是弄混,记录下。。。 a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行; a() || b() :如果执行a()后返回true,则...
下面小编就为大家带来一篇浅谈JS运算符&&和|| 及其优先级。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
一句话区分运算符 | 和 ||,& 和 && 太长不看版: 结果上没有区别,运算过程中&两边都算,而 && 先算左侧,若左侧为 false 那么右侧就不运算了。 如何区分运算符 | 和 ||,& 和 &&? 首先,我们知道 | 和 & 定义为...
5.10_成员运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.11_身份运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.13_位运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.6_赋值运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.7_比较运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
5.9_逻辑运算符|Python的变量与运算符|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
件“与”运算符 (&&) 执行其 bool 操作数的逻辑“与”运算,但仅在必要时才计算第二个操作数 同时我们还要了解到 || 和 && 都是左结合性的逻辑运算符,所以看下面的例子 class Program { static void Main...
js中的||和&&运算符(运算符两侧为数字的情况)
逻辑或运算符:|| 语法 logical-or-expression || logical-and-expression 备注 如果任一操作数或两个操作数为 true,则逻辑“或”运算符 (||) 返回布尔值 true;否则返回 false。操作数在计算之前隐式转换为...
首先说明一下,在python中是没有&&及||这两个运算符的,取而代之的是英文and和or。其他运算符没有变动。 接着重点要说明的是python中的a.any(),我之所以会涉及到这个函数,是因为我在设计某个分段数值函数时由于不...
逻辑运算符&逻辑表达式&逻辑运算符优先级&闰年问题.pdf
Java中位运算符在操作逻辑型数据时与逻辑运算符&&、||、!不同的测试,测试结果逻辑运算符左侧的表达式会进行运算、右侧的不会,非运算一定会变;位运算符两侧都会变
js中逻辑运算符在开发中可以算是比较常见的运算符了,主要有三种:逻辑与&&、逻辑或||和逻辑非!。 当&&和|| 连接语句时,两边的语句会转化为布尔类型(Boolean),然后再进行运算,具体的运算规则如下: 1.&& 1.1...