解释&&和||在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 闭包疑问
Dec 30 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
Feb 27 Javascript
JQuery实现表格中相同单元格合并示例代码
Jun 26 Javascript
JavaScript常用脚本汇总(二)
Mar 04 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
Apr 22 Javascript
js,jq,css多方面实现简易下拉菜单功能
May 13 Javascript
浅谈angular2路由预加载策略
Oct 04 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
JS基于封装函数实现的表格分页完整示例
Jun 26 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
Nov 28 Javascript
Vue中对iframe实现keep alive无刷新的方法
Jul 23 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
Feb 16 Javascript
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单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
Node.js编码规范
2014/07/14 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
前端弹出对话框 js实现ajax交互
2016/09/09 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
用Python写冒泡排序代码
2016/04/12 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
Python实现图片添加文字
2019/11/26 Python
python实现梯度法 python最速下降法
2020/03/24 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
奶茶专卖店创业计划书
2014/01/18 职场文书
公司薪酬管理制度
2014/01/31 职场文书
品牌推广策划方案
2014/05/28 职场文书
专业见习报告范文
2014/11/03 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
离婚财产分割协议书
2015/08/11 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
python实现自动清理文件夹旧文件
2021/05/10 Python
OpenCV 图像梯度的实现方法
2021/07/25 Python
Python中time与datetime模块使用方法详解
2022/03/31 Python
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers