假设我们有嵌套的三元语句:
return foo ? 1 : bar ? 2 : 3;
格式化此代码以确保其他人未来可读性的最佳方法是什么。
答案 0 :(得分:3)
This post是我能找到的最受欢迎的观点。有建议
return foo ? 1 :
bar ? 2 :
3 ;
答案 1 :(得分:1)
分开功能
function getValue(cond1, cond2) {
if(cond1) return 'a';
if(cond2) return 'b';
return 'c';
}
function work() {
const result = getValue(/* some params */);
}
答案 2 :(得分:0)
我不知道这是否被接受,但我一直这样使用它。
Ternary 为您提供了如此自然的测试结构,您只需使其多行并正确缩进即可使代码非常易读。我坚信三元的以下用法是嵌套条件的最佳表现。
return foo ? 1
: bar ? 2
: 3;
在更复杂的情况下,您可以让三元运算符和逗号运算符完美地协同工作。请记住,逗号分隔组中的最后一条指令会自动返回。对于三元来说超级方便。
return foo ? ( doSometingFoo()
, variable++
, collectResult() // and return foo result
)
: bar ? ( doSomethingBar()
, variable--
, collectAnotherResult() // and return bar result
)
: ( doSomethingReject()
, variable = 0
, rejectSomehow() // and return error code
)
答案 3 :(得分:0)
我更喜欢这种三元运算符格式的可读性:
return foo
? bar
: baz
? qux
: qiz
? 1
: 2;
答案 4 :(得分:-1)
return foo ? 1 : (bar ? 2 : 3) ;
答案 5 :(得分:-2)
为了便于阅读,请远离这些陈述,如果您想要更具可读性,只需扩展并使用正常的陈述,就会非常容易被误读。
只有嵌套的if语句列表没有错误。
if(foo){
return 1
}else{
if(bar){
return 2;
}else{
return 3;
}
}