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 相关文章推荐
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
JavaScript闭包实例讲解
Apr 22 Javascript
详谈javascript中DOM的基本属性
Feb 26 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
Jan 21 Javascript
Javascript类型系统之String字符串类型详解
Jun 21 Javascript
js 获取元素所有兄弟节点的实现方法
Sep 06 Javascript
js实现显示手机号码效果
Mar 09 Javascript
使用socket.io实现简单聊天室案例
Jan 02 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
Dec 28 Javascript
原生js实现购物车
Sep 23 Javascript
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 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
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
python获取本机所有IP地址的方法
2018/12/26 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
浅谈python出错时traceback的解读
2020/07/15 Python
python实现猜拳游戏项目
2020/11/30 Python
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
搬家公司的创业计划书
2014/01/01 职场文书
办理暂住证介绍信
2014/01/11 职场文书
会务接待方案
2014/02/27 职场文书
村委会换届选举方案
2014/05/03 职场文书
工作失误检讨书
2015/01/26 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
同学会感言
2015/07/30 职场文书
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python