解释&&和||在javascript中的另类用法


Posted in Javascript onJuly 28, 2014

又开始研究起 Titanium 来,发现其官方出品的MVC框架(Alloy)还是挺不错的,刚开始苦于没有好的代码来学习,文档又少,所以一直没去详细研究,后来发现原来官方的 CodeStrong 就是一套非常不错的学习代码,只要看通了其整套代码,相信对Alloy的使用也基本会了~

在看其源码的同时,发现很多地方使用了诸如以下的用法:

$.clouds && ($.index.add($.clouds));

开始不是很理解,毕竟平时这样用的也少,上了下google后才知道原来这样写法非常方便好用(其实jquery的源码里也大量使用此方法)。以下引用一段网上找到的解释&&和||在javascript中的另类用法:
a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行;
a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值;

&& 优先级高于 ||

看完后就相当清楚了,再看看具体代码:
alert((1 && 3 || 0) && 4); //结果4 ①
alert(1 && 3 || 0 && 4); //结果3 ②
alert(0 && 3 || 1 && 4); //结果4 ③

分析:

语句①:1&&3 返回3 => 3 || 0 返回 3 => 3&&4 返回 4
语句②:先执行1&&3 返回3,在执行0&&4返回0,最后执行结果比较 3||0 返回 3
语句③:先执行0&&3 返回0,在执行1&&4返回4,最后执行结果比较 0||4 返回 4
注:非0的整数都为true,undefined、null和空字符串”” 为false。

感觉javascript确实挺强挺灵活的!!

Javascript 相关文章推荐
javascript创建对象、对象继承的实用方式详解
Mar 08 Javascript
d3.js入门教程之数据绑定详解
Apr 28 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
Dec 06 Javascript
使用Vue动态生成form表单的实例代码
Apr 26 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 jQuery
一文了解vue-router之hash模式和history模式
May 31 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
Dec 12 Javascript
详解node和ES6的模块导出与导入
Feb 19 Javascript
Vue通过provide inject实现组件通信
Sep 03 Javascript
详解vue父子组件状态同步的最佳方式
Sep 10 Javascript
全面解析Vue中的$nextTick
Dec 24 Vue.js
jQuery实现全选按钮
Jan 01 jQuery
wap手机图片滑动切换特效无css3元素js脚本编写
Jul 28 #Javascript
jQuery内置的AJAX功能和JSON的使用实例
Jul 27 #Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 #Javascript
jquery JSON的解析方式示例介绍
Jul 27 #Javascript
jQuery提交多个表单的小技巧
Jul 27 #Javascript
用javascript对一个json数组深度赋值示例
Jul 27 #Javascript
在JS数组特定索引处指定位置插入元素
Jul 27 #Javascript
You might like
php 无限分类的树类代码
2009/12/03 PHP
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
js中onload与onunload的使用示例
2013/08/25 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
信息技术教学反思
2014/02/12 职场文书
园艺师求职信
2014/03/10 职场文书
社区服务活动总结
2014/05/07 职场文书
公司授权委托书范文
2014/09/21 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
师德师风整改措施
2014/10/24 职场文书
丧事答谢词
2015/01/05 职场文书
关于观后感的作文
2015/06/18 职场文书
小学科学课教学反思
2016/02/23 职场文书
诉讼和解协议书
2016/03/23 职场文书