javascript - 在 'else' 语句中检查 'if - else' 是否相等

标签 javascript

假设我们有这样的代码(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';
    }
}

我遇到过很多次类似的情况。通常我不会考虑最好的变体,而是写下最先出现的。但现在我想决定将来使用什么变体。

最后一个问题。如果一个变量只能有两个值并且第一个值是在 if 语句中给出的,我是否需要在 else 中检查变量的相等性?我还想知道使用函数注释会如何影响答案。

最佳答案

如果只有值 highlow 有效,请考虑第三个选项:

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');
    }
}

快速失败。这可以帮助您更快地找到错误。

关于javascript - 在 'else' 语句中检查 'if - else' 是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40431639/

相关文章:

javascript - jQuery - 在链接上创建元素

javascript - 有没有办法使用vanilla JS在javascript生成的表中获取TD的值?

javascript - 切换按钮时如何更改文本颜色?

javascript - 使用 React-PDF 放大/缩小

javascript - blob 到文件的转换返回 application/octet-stream,而不是 JavaScript 中的 File

javascript - polymer 就绪与 Chart.js 附加回调

javascript - 如何在使用 Nginx 服务器发送每个请求之前修改 build 文件夹中的 index.html 文件?

javascript - 无法访问数组的元素

javascript - 在 dojo 中显示 Json 数据

javascript - 在 html 代码中使用 javascript 变量