javascript &&和||运算法的另类使用技巧
作者:bea
&&和||在JQuery源代码内尤为使用广泛,由于本人没有系统的学习js,所以只能粗略的自我理解出来,希望大家指点下。 粗略理解如下: a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行; a() || b() :如果执行a()后返回true,则整个表达式返回a()的值,b()不执行;如果执行a()后返回false,则执行b()并返回b()的值
&&和||在JQuery源代码内尤为使用广泛,由于本人没有系统的学习js,所以只能粗略的自我理解出来,希望大家指点下。
粗略理解如下:
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。
有用 | 无用
粗略理解如下:
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。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- js 表格隔行颜色
- 让FireFox支持innerText的实现代码
- 兼容IE与Firefox的js 复制代码
- JavaScript 直接操作本地文件的实现代码
- js 变量类型转换常用函数与代码[比较全]
- Jquery 快速构建可拖曳的购物车DragDrop
- JavaScript 学习笔记 Black.Caffeine 09.11.28
- Ruffy javascript 学习笔记
- jquery 分页控件实现代码
- JS 动态获取节点代码innerHTML分析 [IE,FF]
- Aptana调试javascript图解教程
- jQuery chili图片远处放大插件
- document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
- javascript 设置某DIV区域内的checkbox复选框
- Javascript 构造函数,公有,私有特权和静态成员定义方法
- javascript 新闻列表排序简单封装
- JavaScript Alert通用美化类
- js鼠标移动在title中显示图片的效果代码
- [原创]javascript代码在ie8里报错 document.getElementById(...) 为空或不是对象的解决方法