【发布时间】:2011-05-04 17:49:14
【问题描述】:
在调试别人编写的 javascript 时,我遇到了一些我以前从未见过的代码。这是一个示例:
function doSomething() {
//doing something here...
}
function doItNow() {
//other logic...
doSomething && doSomething(); // <=== What's this?
}
函数 doItNow() 中第二行的目的是检查 doSomething 是否存在然后调用它吗?像这样:
function doItNow() {
//other logic...
if (doSomething) {
doSomething();
}
}
JSLint 不喜欢它,我宁愿在我的应用程序中不要有错误的代码。有什么见解吗?
【问题讨论】:
-
我认为它非常聪明,尽管它确实损害了代码的可读性。我不会将这种“糟糕的代码”称为“可读性差的代码”
-
根据语言的不同,这可以被认为是一个标准的成语。
标签: javascript coding-style idioms logical-operators short-circuiting