我喜欢使用const
,我喜欢switch
语句。
注意:以下只是一个简化的例子。每种情况下的代码都稍微复杂一些,返回的对象是JSX组件。
考虑一下:
let retval // can't declare as const!
switch (value) {
case 'a':
retval = 'aa'
break
case 'b':
retval = 'bb'
break
case 'c':
retval = 'cc'
break
case 'd':
retval = 'dd'
break
default:
retval = 'xx'
}
// mistakenly by purpose change retval here..
retval = function nope(){ return null }
但我 DO 想要使用我的consts,与此相比:
const retval = (() => {
switch (value) {
case 'a':
return 'aa'
case 'b':
return 'bb'
case 'c':
return 'cc'
case 'd':
return 'dd'
default:
return 'xe'
}
})()
retval = null // nope you are safe here!, raises error
是否会造成不必要的开销? ......或者引擎会获得它的优势吗?
答案 0 :(得分:2)
您可以使用具有默认值的对象而不是switch语句。
const retval = {a: 'aa', b: 'bb', c: 'cc', d: 'dd'}[value] || 'xe';
或使用函数,它刚刚执行
var value = 'd';
const retval = ({a: () => 'aa', b: () => 'bb', c: () => 'cc'}[value] || (() => 'xe'))();
console.log(retval);