标签:
原帖地址: http://www.w3cfuns.com/blog-5477338-5410055.html
在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true.
|| 先计算第一个运算数,如果可以被转换成true,则返回左边这个表达式的值,否则计算第二个运算数。即使||运算符的运算数不是布尔值,任然可以将它看作布尔OR运算,因为无论它返回的值是什么类型,都可以被转换为布尔值。
&& 它先计算第一个表达式,若为假,就不会去处理第二个表达;否则继续处理后继表达式。从左到右选取表达式的第一个为非true的表达式的值,如果一直未找到则返回最后一个表达式的值。
if( a == 3 ){
alert("OK");
}
简写成:
a==3 && alert("OK");
if( a == 3 ){
alert("Yes");
}
else{
alert("No");
}
简写成:
a==3 && alert("Yes") || alert("No");
这种写法在js框架中使用已经非常普遍,使用这种表达式对于不熟悉 JavaScript 的人,确实会降低可读性,但是熟悉之后,反而会让原本层层叠叠的条件判断逻辑更加清晰。
看栗子: 提取一个数组的数据,允许提取的数组元素下标为 1、3、6、7、8
精简代码:
再简单点:
强大的表达式,再看另一种栗子
(转)Javascript 的|| 和&& 运算符的精简用法
标签:
原文地址:http://www.cnblogs.com/haili042/p/4920748.html