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 相关文章推荐
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
Jan 13 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 Javascript
JavaScript对象的property属性详解
Apr 01 Javascript
javascript常用方法汇总
Dec 02 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
Mar 03 Javascript
jQuery绑定事件-多种实现方式总结
May 09 Javascript
jQuery向webApi提交post json数据
Jan 16 Javascript
jQuery元素选择器实例代码
Feb 06 Javascript
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
vue + element-ui的分页问题实现
Dec 17 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
Dec 22 Javascript
vue插槽slot的简单理解与用法实例分析
Mar 14 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的autoload机制的实现解析
2012/09/15 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
2019/12/04 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
vue实现购物车列表
2020/06/30 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
python实现备份目录的方法
2015/08/03 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
python爬虫之自制英汉字典
2019/06/24 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
幼儿园老师寄语
2014/04/03 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技