资讯专栏INFORMATION COLUMN

js中的bool值转换及"&&" 、"||"

hufeng / 829人阅读

摘要:如果左侧表达式的值为真值,则返回右侧表达式的值否则返回左侧表达式的值。遇到真爱就返回中运算符的运算法则如下返回遇到的第一个真值或者最后一个值。输出为将表达式进行强制转化为值的运算,运算结果为或者。

bool值转换
数据类型 bool值转化
undefined undefined 转化为 false
Object null 转化为false,其他为 true
Boolean false 转化为 false,true 转化为 true
Number 0,NaN 转化为false,其他为 true
String "" 转化为 false,其他为 true
"&&" : 遇到“假”爱就返回

javascript中“&&”运算符运算法则如下:

返回遇到的第一个假值(null, undefined, NaN, false, "", 0)或者最后一个值。
如果&&左侧表达式的值为真值,则返回右侧表达式的值;否则返回左侧表达式的值。多个&&表达式一起运算时,返回第一个表达式运算为false的值,如果所有表达式运算结果都为true,则返回最右侧一个表达式运算的值。
const aa = {"name": "xx"};
const bb = aa && aa.age; // bb输出为undefined;
let cc;
const dd = cc && cc.name ? cc.name : undefined; // dd输出为undefined
const dd = cc && cc.name; // dd输出为undefined;
上面两句代码的执行结果是一样的,之前写代码的时候一直用上面的方式,但是发现有些单测覆盖不到,导致单测分支覆盖率很低,换下面的方式就可以很好的解决这个问题,这两句的效果是一样的。
"||" :遇到“真”爱就返回

javascript中"||"运算符的运算法则如下:

返回遇到的第一个真值或者最后一个值。
如果"||"左侧表达式的值为真值,则返回左侧表达式的值;否则返回右侧表达式的值。多个"||"表达式一起运算时,返回第一个表达式运算结果为true的值,如果所有表达式运算结果都为false,否则返回最右侧的表达式的值。
const aa = false || "xx"; // aa输出为"xx" 
"!!"
"!!"将表达式进行强制转化为bool值的运算,运算结果为true或者false。
const aa = "xx";
const bb = !!aa; // bb输出为true
const cc = !!(NaN || undefined || null || 0 || "" ); // cc为false;

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/dev...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92253.html

相关文章

  • js中的bool转换"&&" 、"||"

    摘要:如果左侧表达式的值为真值,则返回右侧表达式的值否则返回左侧表达式的值。遇到真爱就返回中运算符的运算法则如下返回遇到的第一个真值或者最后一个值。输出为将表达式进行强制转化为值的运算,运算结果为或者。 bool值转换 数据类型 bool值转化 undefined undefined 转化为 false Object null 转化为false,其他为 true Boole...

    shengguo 评论0 收藏0
  •  用js实现点击切换和自动播放的轮播图示例

      js实现点击切换和自动播放的轮播图,其实十分简单,话不多说,我们直接看示例:  轮播图案例  <!DOCTYPEhtml>   <html>   <head>   <metacharset="UTF-8">   <metaname="vie...

    3403771864 评论0 收藏0
  • Vue3$emit用法指南(含选项API、组合APIsetup语法糖)

      在开发中,Vue模式使用props将数据从父组件传递到子组件。那如何将一个子组件将数据传给它的父组件呢?有关使用emit,我们可以触发事件并将数据传递到组件的层次结构中。以下举例一些情况,如:  从 input 中发出数据  从 modal 本身内部关闭 modal  父组件响应子组件  Vue Emit是如何工作的?  当我们 emit 一个事件时,我们用一个或多个参数调用一个方法:  ev...

    3403771864 评论0 收藏0
  • 解析JavaScript判断两个相等的方法

      本篇文章主要是讲述在JavaScript中判断两个值相等,不要认为很简单,要注意的是在JavaScript中存在4种不同的相等逻辑。  ECMAScript 是 JavaScript 的语言规范,在ECMAScript 规范中存在四种相等算法,如下图所示:  上图中每个依次写下来,很多前端应该熟悉严格相等和非严格相等,但对于同值零和同值却不熟悉,现在就依次下面四种方法。  同值  同值零  非...

    3403771864 评论0 收藏0
  • pygame中Rect对象介绍案例解答

      小编写此篇文章的目的,主要是给大家来做一个解答,解答关于pygame中Rect对象的相关内容知识,下面就给大家做一个比较详细的解答。  class pygame.Rect Rect  对象的属性:  Rect表示的区域必须位于一个Surface对象之上,比如游戏的主窗口(screen)。上述方法由四个关键参数值构成,分别是left、top、width、height,为了方便大家理解这些距离的含...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<