and的用法(&)

经常看到jq的源码中各种&连接在一起赋值一个变量,

例一: var b = a&&a.getName

例二: var b = a&&a.getName||d

例三: return b = a&&a.getName,c = d&&d.getAge

&&的几个特点:

1、顺序,&&优先于||

2、&&两边的表达式都要执行,即执行完,然后接着执行a.getName;||表达是只要一边为true即可,如果左边为true,则右边不执行

针对例子说一下:

例一:可以把&&看成一个个条件,如果a存在那么b = a.getName,这样理解,多个&&类似,只是if多了几个条件而已

例二:||把表达是分为两部分,第一部分是a&&a.getName,第二部分是d,如果第一部分存在,那么第二部分不执行,如果第一部分不存在那么执行第二部分,第一部分遵循例一,化繁为简。

if(a&&a.getName)

{

    b = a&&a.getName

}else if(d){

    b = d

}

例三:主要说一下,有逗号的时候,返回最右边的表达式的结果(c),仅此而已,只是再返回的时候执行了几个赋值操作

原文地址:https://www.cnblogs.com/aishangyizhihu/p/4272921.html