js中的布尔运算符使用介绍


Posted in Javascript onNovember 20, 2013

在之前我们讨论到布尔运算符 && 和 || 的时候,我说过它们的结果是布尔值。这样说起来有点过于简单化了。如果你用它们来计算布尔数据类型,它们确实会返回布尔值。但是它们也能用于计算其他的类型的数据,这种时候,返回的就将是其中的一个参数了。

或运算符“||” 真正做的事是这样的:它首先检查一下它左边的参数,如果转换成布尔类型的值后为true,那么就返回左边的参数,否则就返回右边的参数。 仔细想想当运算符两边都是布尔类型的值的时候,是不是这样的。为什么它这样运行?这样运行的结果其实非常实用。我们来看这个例子:

var input = prompt("What is your name?", "Kilgore Trout"); 
alert("Well hello " + (input || "dear"));

如果用户按“取消”或者直接关掉prompt对话框,input的值将是null或者“”。这两种情况下,转换成布尔类型的值都是false。那么这时候 input || “dear” 这个表达式的意思就是input有值的时候就得到input的值,否则就得到“dear”。这是一个很简单的提供一个默认值的方法。

与运算符 “&&” 的工作原理类似,但是与 “||” 正好相反。当它左边的参数转换成布尔类型的值为“false”的时候,它就返回那个值,否则返回右边的值。这两个操作符还有一个特点就是,只有在必要的时候,才会计算它右边的表达式的值。在“true || X” 这个表达式中,不管X是什么,结果都是true,所以X就不会被计算,如果X有其他的效果,那这个效果也不会产生。“false && X” 也是同样的道理。

false || alert("I'm happening!"); 
true || alert("Not me.");
Javascript 相关文章推荐
jQuery DOM操作小结与实例
Jan 07 Javascript
浅析Js中的单引号与双引号问题
Nov 06 Javascript
easyui datagrid 键盘上下控制选中行示例
Mar 31 Javascript
jQuery中get()方法用法实例
Dec 27 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
Jan 13 Javascript
js中变量的连续赋值(实例讲解)
Jul 08 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
Aug 14 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 Javascript
微信小程序支付前端源码
Aug 29 Javascript
JS数组splice操作实例分析
Oct 12 Javascript
浅析hasOwnProperty方法的应用
Nov 20 #Javascript
鼠标滚轮改变图片大小的示例代码
Nov 20 #Javascript
JS画线(实例代码)
Nov 20 #Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
Nov 20 #Javascript
JS事件在IE与FF中的区别详细解析
Nov 20 #Javascript
引用 js在IE与FF之间的区别详细解析
Nov 20 #Javascript
JavaScript之IE的fireEvent方法详细解析
Nov 20 #Javascript
You might like
php使用MySQL保存session会话的方法
2015/06/18 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
使用Python神器对付12306变态验证码
2016/01/05 Python
python脚本监控docker容器
2016/04/27 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Python编写打字训练小程序
2019/09/26 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
招商业务员岗位职责
2013/12/16 职场文书
运动会领导邀请函
2014/01/10 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
服务宗旨标语
2014/07/01 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python