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 相关文章推荐
Add a Formatted Table to a Word Document
Jun 15 Javascript
jquery实现表格隔行换色效果
Nov 19 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
Feb 06 Javascript
Jquery实现$.fn.extend和$.extend函数
Apr 14 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
Jan 15 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
Jul 13 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
Aug 20 Javascript
vue 点击按钮增加一行的方法
Sep 07 Javascript
vue使用v-for实现hover点击效果
Sep 29 Javascript
解决layui弹框失效的问题
Sep 09 Javascript
微信小程序事件流原理解析
Nov 27 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
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
PHP创建XML接口示例
2019/07/04 PHP
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
Three.js学习之网格
2016/08/10 Javascript
理解javascript中的闭包
2017/01/11 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
Python随机生成数模块random使用实例
2015/04/13 Python
python实现K最近邻算法
2018/01/29 Python
代码分析Python地图坐标转换
2018/02/08 Python
python 以16进制打印输出的方法
2018/07/09 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
Python3实现飞机大战游戏
2020/04/24 Python
python 写一个性能测试工具(一)
2020/10/24 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
四年大学生活的个人自我评价
2013/12/11 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
考研英语辞职信
2015/05/13 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技