当有条件地获取一个值时,我喜欢使用三元运算符 (?:
) 这样我就可以拥有 const
变量声明:
// Better
const foo = x ? 'bar' : 'goo';
// Worse
var foo;
if (x) {
foo = 'bar';
} else {
foo = 'goo';
}
我想对 switch
语句做同样的事情。我可以使用一系列嵌套的 ?:
,但这很麻烦而且扩展性不好:
const foo = x === 1 ? 'bar' : (x === 2 ? 'goo' : 'zoo');
我什至可以使用闭包,但这也很冗长:
const foo = (() => {
switch(x) {
case 1:
return 'bar';
case 2:
return 'goo';
default:
return 'zoo';
}
})();
JavaScript 中有switch
表达式吗?
最佳答案
您首先应该保持内容的可读性和可管理性。将具有四个或五个值的两个或三个条件压缩到一行中几乎任何方式都不可读。
我建议使用这种声明式的方法:
let fooToBarMap = {
foo: 'bar',
baz: 42
};
let y = fooToBarMap[x] || 'default';
关于javascript - JavaScript有switch的表达形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38853059/