Javascript的&&和||的另类用法


Posted in Javascript onJuly 23, 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编程开发中的五个实用小技巧
Jul 22 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
May 07 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
Aug 15 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
Dec 11 Javascript
js 绑定键盘鼠标事件示例代码
Feb 12 Javascript
跟我学习javascript的prototype原型和原型链
Nov 18 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 Javascript
React-router 4 按需加载的实现方式及原理详解
May 25 Javascript
Vue SSR 组件加载问题
May 02 Javascript
js实现旋转的星空效果
Nov 01 Javascript
详解Vue 的异常处理机制
Nov 30 Vue.js
jQuery获取节点和子节点文本的方法
Jul 22 #Javascript
jQuery打印图片pdf、txt示例代码
Jul 22 #Javascript
JavaScript匿名函数与委托使用示例
Jul 22 #Javascript
javascript中声明函数的方法及调用函数的返回值
Jul 22 #Javascript
js判断变量初始化的三种形式及推荐用的形式
Jul 22 #Javascript
网站接入QQ登录的两种方法
Jul 22 #Javascript
防止登录页面出现在frame中js代码
Jul 22 #Javascript
You might like
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
基于jquery & json的省市区联动代码
2012/06/26 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
什么是JavaScript中的结果值?
2016/10/08 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
JQuery属性操作与循环用法示例
2019/05/15 jQuery
vue 动态表单开发方法案例详解
2019/12/02 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
详解Python中的四种队列
2018/05/21 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
python与字符编码问题
2019/05/24 Python
python Shapely使用指南详解
2020/02/18 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
虚拟机下载python是否需要联网
2020/07/27 Python
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
授权委托书格式模板
2014/04/03 职场文书
人力资源管理求职信
2014/08/07 职场文书
行政处罚告知书
2015/07/01 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫
Django框架之路由用法
2022/06/10 Python