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 相关文章推荐
javascript 系统文件夹文件操作及参数介绍
Jan 08 Javascript
jquery如何把参数列严格转换成数组实现思路
Apr 01 Javascript
iframe的父子窗口之间的对象相互调用基本用法
Sep 03 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
javascript闭包的理解
Apr 01 Javascript
jquery实现左右无缝轮播图
Jul 31 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
B/S(Web)实时通讯解决方案分享
Apr 06 Javascript
bootstrap switch开关组件使用方法详解
Aug 22 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 jQuery
Vue利用canvas实现移动端手写板的方法
May 03 Javascript
layui实现三级联动效果
Jul 26 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
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
php实现微信支付之现金红包
2018/05/30 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
2017/09/27 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
Python入门篇之函数
2014/10/20 Python
深入理解Python中的元类(metaclass)
2015/02/14 Python
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
办公室前台岗位职责
2014/01/04 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
办公室日常管理制度
2015/08/04 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android
Go语言特点及基本数据类型使用详解
2022/03/21 Golang