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 相关文章推荐
JS动态获取当前时间,并写到特定的区域
May 03 Javascript
简单实用的全选反选按钮例子
Oct 18 Javascript
倒记时60刷新网页的js代码
Feb 18 Javascript
原生javaScript实现图片延时加载的方法
Dec 22 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
Mar 25 Javascript
js中 javascript:void(0) 用法详解
Aug 11 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
Mar 24 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
May 03 Javascript
微信小程序 action-sheet底部菜单详解
Oct 27 Javascript
AngularJS的ng Http Request与response格式转换方法
Nov 07 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
Dec 24 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调用数据库的存贮过程
2006/10/09 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
动态加载js的几种方法
2006/10/23 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
会计专业毕业生自我评价
2013/09/25 职场文书
房地产项目策划书
2014/02/05 职场文书
采购经理岗位职责
2014/02/16 职场文书
社团活动总结
2014/04/28 职场文书
小组名称和口号
2014/06/09 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
小学数学教学反思范文
2016/02/16 职场文书
mysql知识点整理
2021/04/05 MySQL
golang协程池模拟实现群发邮件功能
2021/05/02 Golang