【发布时间】:2014-06-05 22:04:29
【问题描述】:
我在挖掘一些代码时发现了以下sn-p:
"string" != typeof myVar && (myVar = "");
我明白这里发生了什么。如果 myVar 不是字符串,则第一个条件评估为真,因此评估第二个条件,导致 myVar 设置为“”。所以它本质上是以下内容的替代品:
if ("string" != typeof myVar)
myVar = "";
唯一明显的区别是,这两种策略中的前者也是一个返回语句,尽管我发现的代码没有使用返回值。所以我想知道:
- 这两种策略各有利弊吗?
- 如果第一个策略的唯一优点是返回值的能力,那么我发现的 sn-p 是否被认为是糟糕的编程,因为它更难阅读?
【问题讨论】:
-
我认为最大的问题只是可读性。查看 if 语句并弄清楚发生了什么要容易得多。
-
如果你喜欢星球大战,Yoda 代码总是很棒,把字符串放在 typeof 检查前面,放在assignemnt 前面等等。
-
我总是想起KISS。
-
这实际上看起来很像缩小的代码。您确定您正在阅读实际的源文件吗?
标签: javascript conditional readability