检查等式在'否则'if - else'声明
Check equality in 'else' in 'if - else' statement
假设我们有这样的代码(js):
/**
* @param {String} type Could be only 'high' or 'low'
* @return {String}
*/
function getSome(type) {
if (type == 'high') {
return 'This is high';
} else if (type == 'low') {
return 'This is low';
}
}
如果这个变体比这个更好(我不包括注释;它们是一样的)?:
function getSome(type) {
if (type == 'high') {
return 'This is high';
} else {
return 'This is low';
}
}
我有过很多次类似的情况。通常我不会考虑最好的变体,而是写最先出现的。但是现在我想决定将来使用什么变体。
最后一个问题。如果我需要检查else
中的变量是否相等如果一个变量只能有两个值并且第一个值在if
语句中给出?我还想知道如何使用函数注释可能会影响答案
如果只有high
和low
值有效,则考虑第三个选项:
function getSome(type) {
if (type === 'high') {
return 'This is high';
} else if (type === 'low') {
return 'This is low';
} else {
throw new Error(type + ' is invalid');
}
}
快速失败。这可以帮助你更快地找到bug
为什么不使用一个对象作为两个值的分组呢?对于未知类型,函数返回undefined,或任何其他默认值。
function getSome(type) {
return { high: 'This is high', low: 'This is low'}[type];
}
与默认的 function getSome(type) {
return { high: 'This is high', low: 'This is low'}[type] || 'type not known.';
}
使用switch
运算符会方便得多,特别是当您有更多可能的值时:
function getSome(type) {
switch(type){
case 'hight':
return 'This is a high';
break;
case 'low':
return 'This is a low';
break;
case 'third':
return 'This is a third';
break;
default:
throw new Error(type + ' is invalid.');
break;
}
}
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 正在尝试使用if和else添加类,但无法正常工作
- 直接在函数声明上使用function.prototype.bind
- 获取HTML属性中CSS声明的值
- 对API数据使用声明性绑定
- 可以Resharper在我的javascript函数声明中添加分号
- 如何为排除无穷大和NaN的数字声明Flow类型
- 此行是否包含函数声明
- Javascript以不同的方式声明数字
- Javascript Return and if/else
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- JavaScript if-else 速记错误
- 如何检查if/else语句中的随机条件
- 使用同一对象中的其他变量声明变量
- JavaScript - 为什么在使用语句之前声明的变量时与 if/else 语句的输出不同
- 如果可能的话,我想写IF ELSE声明DRYer
- 检查等式在'否则'if - else'声明
- 在var声明中使用if-else简写操作符时出错
- 在javascript中声明变量和if-else语句时出现问题