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 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 Javascript
JavaScript 常见对象类创建代码与优缺点分析
Dec 07 Javascript
基于JQuery实现相同内容合并单元格的代码
Jan 12 Javascript
document.compatMode的CSS1compat使用介绍
Apr 03 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
Jul 01 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
javascript事件处理模型实例说明
May 31 Javascript
javascript 封装Date日期类实例详解
May 28 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
May 30 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
JS跨域请求的问题解析
Dec 03 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 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
神族 PROTOSS 概述
2020/03/14 星际争霸
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
js中replace的用法总结
2013/12/27 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
Vue实现圆环进度条的示例
2021/02/06 Vue.js
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
Python with用法实例
2015/04/14 Python
Django 多环境配置详解
2019/05/14 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
房屋出售协议书
2014/04/10 职场文书
大学计划书范文800字
2014/08/14 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
财会专业大学生求职信
2014/09/26 职场文书
2014年底个人工作总结
2015/03/10 职场文书
2016高考寄语集锦
2015/12/04 职场文书
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server