我在查阅一些代码时发现了以下片段:
我理解这里发生的事情。如果myVar不是字符串,那么第一个条件会得到true,因此会评估第二个条件,导致myVar被设置为""。所以它本质上是以下内容的替代:
```javascript if (typeof myVar !== "string") { myVar = ""; } ```
我在查阅一些代码时发现了以下片段:
"string" != typeof myVar && (myVar = "");
我理解这里发生的事情。如果myVar不是字符串,那么第一个条件会得到true,因此会评估第二个条件,导致myVar被设置为""。所以它本质上是以下内容的替代:
```javascript if (typeof myVar !== "string") { myVar = ""; } ```
if ("string" != typeof myVar)
myVar = "";
这两种策略唯一可辨别的区别是前者也是一个返回语句,尽管我找到的代码没有使用返回值。所以我想知道:
- 这两种策略有什么优缺点吗?
- 如果第一种策略唯一的优点是能够返回一个值,那么我找到的代码是否被认为是糟糕的编程,因为它更难读懂?