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与CSS复习(《精通javascript》)
Jun 29 Javascript
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
jQuery 插件开发指南
Nov 14 Javascript
jQuery匹配文档链接并添加class的方法
Jun 26 Javascript
javascript实现拖动元素交换位置
Nov 29 Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 Javascript
JavaScript获取select中text值的方法
Feb 13 Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
Jul 09 Javascript
详解Vue webapp项目通过HBulider打包原生APP
Jun 29 Javascript
React之PureComponent的使用作用
Jul 10 Javascript
React配置子路由的实现
Jun 03 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
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
react 应用多入口配置及实践总结
2018/10/17 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
Python全栈之列表数据类型详解
2019/10/01 Python
Python实现点云投影到平面显示
2020/01/18 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
实习求职信
2013/12/01 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
感恩老师演讲稿400字
2014/08/28 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
javaScript Array api梳理
2021/03/31 Javascript