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 相关文章推荐
jquery 插件 任意位置浮动固定层
Dec 25 Javascript
谷歌地图打不开的解决办法
Aug 07 Javascript
项目中常用的JS方法整理
Jan 30 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
Jul 05 Javascript
详解javascript实现瀑布流列式布局
Jan 29 Javascript
js 截取或者替换字符串中的数字实现方法
Jun 13 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
jQuery事件与动画基础详解
Feb 23 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
Aug 10 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 Javascript
JS实现根据详细地址获取经纬度功能示例
Apr 16 Javascript
layui监听工具栏的实例(操作列表按钮)
Sep 10 Javascript
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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
js select option对象小结
2013/12/20 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
Python中的并发编程实例
2014/07/07 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
Django stark组件使用及原理详解
2019/08/22 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
利用python实现汉诺塔游戏
2021/03/01 Python
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
武汉高蓝德国际.net机试
2016/06/24 面试题
法学专业应届生求职信
2013/10/16 职场文书
机械设计及其自动化专业推荐信
2013/10/31 职场文书
应届毕业生应聘自荐信
2013/12/07 职场文书
公证处委托书
2015/01/28 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
浅析Django接口版本控制
2021/06/26 Python