js奇怪的退货声明

时间:2016-09-17 19:07:31

标签: javascript

我正在做一个角度教程,但无论如何,我不理解以下的return语句:

return selectedCategory == null || product.category == selectedCategory;

我尝试重写它,但它不起作用:

if (selectedCategory == null) {
                return selectedCategory;
            } else {
                return product.category;
            }

如何重写一个班轮代码以便更容易理解?

2 个答案:

答案 0 :(得分:2)

你的返回null,他们返回true。你需要

if (selectedCategory == null) {
    return true;
} else {
    return product.category == selectedCategory;
}

答案 1 :(得分:0)

  

如何重写一个班轮代码以便更容易理解?

在返回的表达式周围添加一些括号:

return ((selectedCategory == null) || (product.category == selectedCategory));

它只返回一个布尔值。这不应该被拆分,使用if - 语句实际上更难以阅读。如果有的话,您可以引入一些额外的变量来为单个值提供描述性名称:

// some guesses about their meaning
var noSelection   = selectedCategory == null;
var alreadyActive = product.category == selectedCategory;
var nothingTodo   = noSelection || alreadyActive;
return nothingTodo;