资讯专栏INFORMATION COLUMN

最简洁的条件运算

Jason / 1675人阅读

摘要:和操作符看到下面的式子,新人肯定认为他们的值是或布尔的运算难道不是或找第一个假值,如果没有假值,返回最后一个真值找第一个真值,如果没有真值,返回最后一个假值内部不是简单的输出或,因为除了个值之外其它指对来说都是,所以刚开始接触的时候会很迷惑

||&&操作符

看到下面的式子,新人肯定认为他们的值是truefalse

a || b   c && d

布尔的运算难道不是truefalse

1 && 2 && 3 && 4 && 5        //5 
1 && 0 && 2 && 3 && 4 && 5         //0
1 && 0 && console.log(3)    //0

&&找第一个假值,如果没有假值,返回最后一个真值

0 || undefined || 1 || null         //1
0 || undefined || null         //null

||找第一个真值,如果没有真值,返回最后一个假值

Boolean 内部不是简单的输出truefalse,因为除了5个falsy值之外其它指对Boolean 来说都是true,所以刚开始接触的时候会很迷惑。

明白了这些之后,可以利用这个特性做一些小技巧

var a = 1        //不合格代码

做项目时不知道前面有没定义a,这样写的话很容易除bug

所以在定义a时可以做一个判断

var a = a || {}     //如果前面有a,就用前面定义的a;如果前面没有a,就用a = {}

等价于:

if(a){
    a=a        //如果a存在,就运行a
}else{
    a={}    //如果a不存在,把a赋值为{}
}

等价于:

if(!window.a){        //写成!a的话,如果a真的不存在,会报错。
    a = {}
}

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

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

相关文章

  • 简简单单说个闭包

    摘要:一般情况下,在函数结束后,函数中变量等就应该被销毁,偏偏这个闭包就是个特例和中的和都保留着。同理,这个变量对应的闭包保存了这个信息。由于退出了函数后,函数并没有并销毁,这个闭包的信息也没销毁,因此后续可以利用这些信息。 闭包的作用 一句话,闭包的作用:将方法存于变量。 至于闭包的原因或者目的,或者说,为什么将方法存于变量,稍后再说。 闭包的条件 为了尽量避免用一大段话描述一个概念,我们...

    yagami 评论0 收藏0
  • 简简单单说个闭包

    摘要:一般情况下,在函数结束后,函数中变量等就应该被销毁,偏偏这个闭包就是个特例和中的和都保留着。同理,这个变量对应的闭包保存了这个信息。由于退出了函数后,函数并没有并销毁,这个闭包的信息也没销毁,因此后续可以利用这些信息。 闭包的作用 一句话,闭包的作用:将方法存于变量。 至于闭包的原因或者目的,或者说,为什么将方法存于变量,稍后再说。 闭包的条件 为了尽量避免用一大段话描述一个概念,我们...

    Binguner 评论0 收藏0
  • Python里那些深不见底“坑”

    摘要:是一门清晰简洁的语言,如果你对一些细节不了解的话,就会掉入到那些深不见底的坑里,下面,我就来总结一些里常见的坑。这是个很常见但很容易被忽略的一个坑。 Python是一门清晰简洁的语言,如果你对一些细节不了解的话,就会掉入到那些深不见底的坑里,下面,我就来总结一些Python里常见的坑。 列表创建和引用 嵌套列表的创建 使用*号来创建一个嵌套的list: li = [[]] ...

    KaltZK 评论0 收藏0
  • 深度学习这么讲你肯定能读懂

    摘要:梯度下降算法梯度是个啥我想最开始接触梯度的各位是在方向导数那一章接触这一概念的,如果老师没怎么讲的话可能有些人还不知道梯度是个向量。在二维条件下,因为有了两个偏导数,所以这个向量能表示一圈。 讲你肯定能懂的机器学习多维极值求解事先说明本文面向学习过高等数学统计学和线性代数基础知识的本科生,并假设读者拥有基本的矩阵运算和求导运算的相关知识,类似梯度,方向导数、Hessian Matrix这些东...

    RancherLabs 评论0 收藏0

发表评论

0条评论

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