Javascript 编写if语句的新方法
在搜索网站源代码时,我找到了一种用另一种方式(我认为)编写Javascript 编写if语句的新方法,javascript,if-statement,short-circuiting,Javascript,If Statement,Short Circuiting,在搜索网站源代码时,我找到了一种用另一种方式(我认为)编写if语句的方法 而不是: if(a)b; 或: 我读到: !a||b; 第三条路和前两条路一样吗?如果是,为什么我们要使用第三种方法?第三种方法与前面的方法相同。使用它的一个参数是保存字节。反对使用它的一个强有力的理由是可读性。在编写代码时,您最好关注可读性,并使用最小值(例如)来节省字节 它甚至可以更短: a && b; /* !a||b means: (not a) OR b which is equ
if
语句的方法
而不是:
if(a)b;
或:
我读到:
!a||b;
第三条路和前两条路一样吗?如果是,为什么我们要使用第三种方法?第三种方法与前面的方法相同。使用它的一个参数是保存字节。反对使用它的一个强有力的理由是可读性。在编写代码时,您最好关注可读性,并使用最小值(例如)来节省字节 它甚至可以更短:
a && b;
/* !a||b means:
(not a) OR b
which is equivalent to
a AND b
which turns out to be
a && b
*/
第三种方法与前面的方法相同。使用它的一个参数是保存字节。反对使用它的一个强有力的理由是可读性。在编写代码时,您最好关注可读性,并使用最小值(例如)来节省字节 它甚至可以更短:
a && b;
/* !a||b means:
(not a) OR b
which is equivalent to
a AND b
which turns out to be
a && b
*/
欢迎来到这个概念。这是在不同语言中使用的逻辑运算符的众所周知的属性。大多数情况下,这将作为适当的if
或任何其他流控制语句中的子表达式使用,或者表示足够短的条件,以便以这种方式保持可读性,或者通过自动转换来保存字节
甚至还有关于这些问题的附加疑问:。欢迎来到概念。这是在不同语言中使用的逻辑运算符的众所周知的属性。大多数情况下,这将作为适当的if
或任何其他流控制语句中的子表达式使用,或者表示足够短的条件,以便以这种方式保持可读性,或者通过自动转换来保存字节
甚至还有一些疑问:。布尔表达式的结果有时可以在不计算所有子表达式的情况下进行计算。如果我们有
A | | B
,并且A
为真,那么甚至不需要计算B
,因为结果无论如何都是真的。这种行为称为“快捷布尔求值”,在大多数编程语言中实际上是标准的。它允许编写表达式,如if(i
,而不计算A[i]
操作数,如果i
值不正确,则可能导致异常
在这种情况下,
!a | | b
与相同,如果(a)b
,是的,但这类代码的可读性和可维护性是一个问题。布尔表达式的结果有时可以在不计算所有子表达式的情况下进行计算。如果我们有A | | B
,并且A
为真,那么甚至不需要计算B
,因为结果无论如何都是真的。这种行为称为“快捷布尔求值”,在大多数编程语言中实际上是标准的。它允许编写表达式,如if(i
,而不计算A[i]
操作数,如果i
值不正确,则可能导致异常
在这种情况下,
!a | | b
与相同,如果(a)b
,是的,但是这种代码的可读性和可维护性是一个问题。(非false)或false
等同于false和false
?真的吗?)先生,您的行李生锈了。a和b不等同于!a | | b符合逻辑。然而,你说得对,如果a为真,a&&b只计算b。@raina77ow最初的例子是if(a)b
,当a
为真时,会导致计算b
。b
的结果是不相关的。是的,但我想这更多的是关于短路而不是等效性。)(非false)或false
等同于false和false
?真的吗?)先生,您的行李生锈了。a和b不等同于!a | | b符合逻辑。然而,你说得对,如果a为真,a&&b只计算b。@raina77ow最初的例子是if(a)b
,当a
为真时,会导致计算b
。b
的结果是不相关的。是的,但我想这更多的是关于短路而不是等效性。)