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的仿百度搜索框效果代码
Apr 11 Javascript
可在线编辑网页文字效果代码(单击)
Mar 02 Javascript
简单谈谈javascript代码复用模式
Jan 28 Javascript
javascript模拟命名空间
Apr 17 Javascript
JavaScript观察者模式(经典)
Dec 09 Javascript
js格式化时间的方法
Dec 18 Javascript
bootstrap按钮插件(Button)使用方法解析
Jan 13 Javascript
vue.js指令v-model使用方法
Mar 20 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
JS高阶函数原理与用法实例分析
Jan 15 Javascript
JS实现继承的几种常用方式示例
Jun 22 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 05 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 操作调试的方法
2012/07/12 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
浅谈Vue.use的使用
2018/08/29 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
django模板结构优化的方法
2019/02/28 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
英国团购网站:Groupon英国
2017/11/28 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
爱心募捐感谢信
2015/01/22 职场文书
教师工作证明范本
2015/06/12 职场文书
运动会通讯稿100字
2015/07/20 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
php实现自动生成验证码的实例讲解
2021/11/17 PHP