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 全选效果实现代码
Mar 23 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
Jan 02 Javascript
JS原型对象通俗"唱法"
Dec 27 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
js获取当前地址 JS获取当前URL的示例代码
Feb 26 Javascript
深入理解javascript构造函数和原型对象
Sep 23 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
javascript常见数据验证插件大全
Aug 03 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
May 30 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 Javascript
详解Vue 全局引入bass.scss 处理方案
Mar 26 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
图解上海144收音机
2021/03/02 无线电
php 远程图片保存到本地的函数类
2008/12/08 PHP
php标签云的实现代码
2012/10/10 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
layui自己添加图片按钮并点击跳转页面的例子
2019/09/14 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
python实现图片处理和特征提取详解
2017/11/13 Python
详解django.contirb.auth-认证
2018/07/16 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
python制作mysql数据迁移脚本
2019/01/01 Python
Django框架中间件(Middleware)用法实例分析
2019/05/24 Python
django 取消csrf限制的实例
2020/03/13 Python
python中的yield from语法快速学习
2020/11/06 Python
Weblogic和WebSphere不同特点
2012/05/09 面试题
2014年大学生就业规划书
2014/04/04 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers
Python数组变形的几种实现方法
2022/05/30 Python
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers