Akl*_*kli 1 javascript coding-style ternary-operator
我有一位同事以这种方式使用三元运算符(在javascript中):
var genderLabel = '';
isMale? genderLabel = 'Man' : genderLabel = 'Woman';
Run Code Online (Sandbox Code Playgroud)
在 C# 中,我就这样做。
var genderLabel = isMale? "Man" : "Woman";
Run Code Online (Sandbox Code Playgroud)
我的同事说这是 javascript 编码约定...是真的吗?我不是 javascript 专家,我不喜欢这种语言......当我检查代码时,我专注于我的左手边以遵循变量初始化或赋值,这种风格迫使我阅读整行。
我还在维护一位前雇员的Java代码,他以同样的方式使用三元运算符。这是一种反模式吗?我认为编译器应该禁止它,就像在 if 语句中禁止它一样:
if(x = 2)
{
...
}
Run Code Online (Sandbox Code Playgroud)
这不会在 C# 中编译。
我的同事说这是 javascript 编码约定...是真的吗?
不。
这是一种反模式吗?
通常一行本身就是一个语句,但是这
isMale ? genderLabel = 'Man' : genderLabel = 'Woman';
Run Code Online (Sandbox Code Playgroud)
是一个表达式,具有设置 的值的副作用genderLabel。这是一个好的做法吗?我不知道,但是如果您认为这是一个很好的做法,那么您还必须允许这样做:
var a = 1, b = 2;
b = [a][a = b, 0]; # swap a and b
Run Code Online (Sandbox Code Playgroud)
你的同事不妨这样做:
if(isMale) genderLabel = 'Man';
else genderLabel = 'Woman';
Run Code Online (Sandbox Code Playgroud)
这更清楚了。
| 归档时间: |
|
| 查看次数: |
1957 次 |
| 最近记录: |