`

&&与||运算符

阅读更多
问题:看到很多代码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公用库。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics