use*_*515 5 javascript conditional readability
在挖掘一些代码时,我发现了以下代码段:
"string" != typeof myVar && (myVar = "");
Run Code Online (Sandbox Code Playgroud)
我明白这里发生了什么。如果 myVar 不是字符串,则第一个条件的计算结果为 true,因此计算第二个条件,导致 myVar 设置为 ""。所以它本质上是以下内容的替代品:
if ("string" != typeof myVar)
myVar = "";
Run Code Online (Sandbox Code Playgroud)
唯一可辨别的区别是两种策略中的前者也是返回语句,尽管我找到的代码没有使用返回值。所以我想知道:
只是想指出这个习语的用法不太明确,但更明确。
"string" != typeof myVar && (myVar = "");
Run Code Online (Sandbox Code Playgroud)
我读了这篇文章,实际上不得不在我的脑海中将其转换为 if/else。Steve McConnell 认为每项工作应该只有一行代码,我倾向于同意这一点,但这是可笑的违反。另请注意,嵌入的副作用首先是有风险的,这是非常令人震惊的。
parameters = parameters || {};
var speed = parameters.speed || 60;
Run Code Online (Sandbox Code Playgroud)
IMO 是一个更清晰的用法吗,部分原因是它是一个非常成熟的习语。或者
if(x && x.employer && x.employer.company === 'google')
Run Code Online (Sandbox Code Playgroud)
是对该习语的明确使用(例如,如果这样做undefined.company,您将得到一个例外)。
| 归档时间: |
|
| 查看次数: |
1209 次 |
| 最近记录: |