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 (八) 插播:jQuery实施方案
Feb 23 Javascript
16个最流行的JavaScript框架[推荐]
May 29 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
Feb 11 Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 Javascript
微信WeixinJSBridge API使用实例
May 25 Javascript
javascript的几种继承方法介绍
Mar 22 Javascript
JS控制层作圆周运动的方法
Jun 20 Javascript
jQuery实现的表格前端排序功能示例
Sep 18 jQuery
Vue2.0仿饿了么webapp单页面应用详细步骤
Jul 08 Javascript
Vue 中axios配置实例详解
Jul 27 Javascript
Vue常用指令详解分析
Aug 19 Javascript
Vue CLI3 开启gzip压缩文件的方式
Sep 30 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
使用PHP维护文件系统
2006/10/09 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
浅谈在Vue-cli里基于axios封装复用请求
2017/11/06 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
浅谈MySQL中的触发器
2015/05/05 Python
Python实现多进程的四种方式
2019/02/22 Python
利用Python实现kNN算法的代码
2019/08/16 Python
利用python汇总统计多张Excel
2020/09/22 Python
常用的HTML5列表标签
2017/06/20 HTML / CSS
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
司机辞职报告范文
2014/01/20 职场文书
上班玩游戏检讨书
2014/02/07 职场文书
停电调休通知
2015/04/16 职场文书
欢送领导祝酒词
2015/08/12 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
浅谈MySQL user权限表
2021/06/18 MySQL
JavaScript实现简单计时器
2021/06/22 Javascript
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript