【发布时间】:2011-10-21 16:06:12
【问题描述】:
我看到somewhere 别人说,
x && foo();
等于
if(x){
foo();
}
我对其进行了测试,他们确实做了同样的事情。
但为什么? x && foo()到底是什么?
【问题讨论】:
-
尽管这是一个巧妙的技巧,但我希望你不要使用它。它有效,但被认为是错误的形式。
-
是的,我同意@PortableWorld。
if(x){foo();}或什至if(x) foo();在一行中的使用几乎一样易于理解,更通用。 -
但请注意不要将其与
if( x && foo() ) { ... }混淆,if( x && foo() ) { ... }可以接受并且具有不同的含义。我,一方面,不介意x && foo(),特别是如果这样的事情越来越多...... JS 受益于最小化。 -
这个习惯用法的一个很好的用法是
window.console && console.log('xyz');,以防止错误的日志命令在未启用控制台的浏览器中引发错误。 -
为了记录,我认为这很漂亮。
标签: javascript conditional and-operator