JavaScript布尔运算符原理使用解析


Posted in Javascript onMay 06, 2020

布尔运算符分为四种:

  • 取反运算符(!)
  • 且运算符(&&)
  • 或运算符(||)
  • 三元运算符( ? 表达式1 : 表达式2 )

取反运算符(!)

用于将任何值转换为布尔值后再变为相反值,即true变false,false变true

取反运算符对以下六个值返回false,其余都返回true:

  • undefined
  • null
  • ''
  • false
  • 0
  • NaN

如果对一个值取反两次,则相当于将其转换为了布尔值,与Boolean()函数的作用相同

!!1 等同于Boolean('1')

且运算符(&&)

且运算符用于多个表达式: 表达式1 && 表达式2

运算规则: 如果第一个运算子返回true,则返回第二个运算子的值(不是布尔值);如果第一个运算子返回false,则返回第一个运算子,且不再对第二个运算子求值(短路)

// 'a'转换为boolean为true,所以直接返回第二个运算子''
'a' && ''

// ''转换为boolean为false,所以直接返回第一个运算子 ''
'' && 'a'

或运算符(||)

或运算符也用于多个表达式的值

运算规则: 如果第一个运算子的布尔值为true,则直接返回第一个运算子的值;如果第一个运算子的布尔值为false,则返回第二个运算子的值

// ''的布尔值为false,所以这里返回'b'
'' || 'b'
// 'b'的布尔值为true,所以这里返回'b'
'b' || ''

或运算符常用语为一个变量设置默认值

三元运算符

表达式1 ? 表达式2 : 表达式3;

如果表达式1的布尔值为true,则返回表达式2;如果表达式1的布尔值为false,则返回表达式3

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript仿qq界面的折叠菜单实现代码
Dec 12 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
js中实现多态采用和继承类似的方法
Aug 22 Javascript
Javascript基础教程之定义和调用函数
Jan 18 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
jQuery实现返回顶部功能
Feb 23 Javascript
express+vue+mongodb+session 实现注册登录功能
Dec 06 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 11 Javascript
优雅的处理vue项目异常实战记录
Jun 05 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
Sep 06 Javascript
p5.js临摹旋转爱心
Oct 23 Javascript
vue和iview实现Scroll 数据无限滚动功能
Oct 31 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 #Javascript
Vue 的双向绑定原理与用法揭秘
May 06 #Javascript
微信小程序中使用 async/await的方法实例分析
May 06 #Javascript
JavaScript常用工具函数大全
May 06 #Javascript
详解react组件通讯方式(多种)
May 06 #Javascript
Node.js API详解之 os模块用法实例分析
May 06 #Javascript
js实现无缝轮播图特效
May 09 #Javascript
You might like
PHP中文汉字验证码
2007/04/08 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
smarty简单分页的实现方法
2014/10/27 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
JS 常用校验函数
2009/03/26 Javascript
javascript 解析url的search方法
2010/02/09 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
django 模型中的计算字段实例
2020/05/19 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
苹果Mac升级:MacSales.com
2017/11/20 全球购物
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
积极分子思想汇报
2014/01/04 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
铁路安全反思材料
2014/12/24 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
pytorch Dropout过拟合的操作
2021/05/27 Python
flex弹性布局详解
2022/03/20 HTML / CSS