查看ECMA规范,我们可以看到关于&& 和 || 如何运算的定义。如下:
lref && rref
1.Let lref be the result of evaluating LogicalANDExpression.
2.Let lval be GetValue(lref).
3.If ToBoolean(lval) is false, return lval.
4.Let rref be the result of evaluating BitwiseORExpression.
5.Return GetValue(rref).
lref || rref
1.Let lref be the result of evaluating LogicalORExpression.
2.Let lval be GetValue(lref).
3.If ToBoolean(lval) is true, return lval.
4.Let rref be the result of evaluating LogicalANDExpression.
5.Return GetValue(rref).
两个我们需要关注的信息
1、&&,||运算符是短路的,在判断lref为false/true的情况,直接return了。
2、返回值不是boolean类型,而是返回lref或者rref之一。
所以我们可以写出很多这样的表达式:
var Yahoo=Yahoo||{} //用于定义类
var result= "ab"||"cd" //用于赋值操作,减少if,else的判断
var result= true && "test" //用于赋值操作,减少if,else的判断
这里需要注意,在转换lref的值为boolean的时候,有一些特殊数据的转换有如下规则:
+0、-0、""、null、false、undefined、NaN 均会被判断为 false。其余情况均为true。
根据以上规则,我们可以写出很多简洁的代码。但是请注意可阅读性和简洁性的平衡。
分享到:
相关推荐
JavaScript内置对象相关介绍及用法ppt JavaScript内置对象相关介绍及用法
原生JS打印插件之jQuery.EasyPrint.js使用文档 调用浏览器自带打印功能,使用JavaScript的 window.print(); 方法。 使用JS实现打印功能;JavaScript 实现打印操作;javascript打印大全;通用;js实现打印的方式;JS...
本文主要针对Javascript中字符串相关常用的使用方法进行了总结
<script type="text/javascript" src="${request.contextPath}/js/common/plug/jquery/jquery.js"> <script type="text/javascript" src="${request.contextPath}/js/common/plug/jquery/jquery.validate.min.js...
js_MD5加密插件附使用方法。自己常用的。
JavaScript教程:适合新手的js代码使用方法和技巧大全
JavaScript中if语句的基础用法 适合编程初学者必学的内容
retire.js, 扫描仪检测使用已知漏洞的JavaScript库的用法 Retire.js 你所要求的也必须退休Web上和 node.js 应用程序中有大量的JavaScript库供用户使用。 这大大简化了开发,但是我们需要在安全修复方面保持。 在安全...
JavaScript的onfocus与onblur用法文章资源下载,供练习使用
js 实现 在JavaScript运行VBScript函数! 值得下载看看!资源免费,大家分享!!
1.在调用之前,请在代码中引用日历的js文件,代码为:<script language=javascript src="wpCalendar.js"> 2.针对用户反映的汉字和星期显示的问题,我把解决办法也写成文档,里面有详细解决办法,还有截图。 3.如果...
JavaScript应用实例-WebViewClient的使用方法.js
NULL 博文链接:https://hoochiang.iteye.com/blog/1688307
在asp.net中使用javascript与css的合理用法 在asp.net中使用javascript与css的合理用法
(2)在调用之前,请在代码中引用日历的js文件,代码为:<script language=javascript src="wpCalendar.js"> (3)如何调用? 方法有两种: 1、(this)" readonly> 2(this,'text4.value=text3.value')"> 3.说明:有...
js画图 js画图包及使用方法 wz_jsgraphics wz_jsgraphics使用
json3.js 【JS / ...使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: JavaScript中解析JSON --- JSON.parse()、JSON.stringify()以及$.parseJSON()使用详解 - chunlynn的小屋 - CSDN博客 ...
用法CSS+JavaScript或纯js实现半透亮遮罩效果的实例分享_.docx
Winform中使用CefSharp和js互相调用方法,Winform中使用CefSharp和js互相调用方法,Winform中使用CefSharp和js互相调用方法,Winform中使用CefSharp和js互相调用方法 vs2019.debug目录下有cef所需要的文件,在其他...
【KETTLE教材】JS内嵌方法: 详细介绍kettle中使用javascript时内嵌的function