我是JavaScript和AngularJS的新手。所以我遇到了亚当·弗里曼书中的以下代码
var selectedCategory = null;
...
$scope.categoryFilterFn = function(product) {
return selectedCategory == null ||
product.category === selectedCategory;
};
我对上面的
return
语句感到困惑,你们能用清晰的代码(无速记)重新编写上面的代码。谢谢。
最佳答案
这是返回boolean
值的简写形式。仔细观察:
return selectedCategory == null || product.category === selectedCategory;
在这里,
return
语句具有两个表达式:selectedCategory == null
product.category === selectedCategory
方法返回时,它将分别计算这两个表达式。假设
selectedCategory
是null
,并且product.category
等于selectedCategory
,则该语句是return true || true;
最终将简化为
return true; // (true || true) = true
同样,您可以通过替换值并分别评估它们来考虑此表达式返回值。
更长的版本是:
if (selectedCategory == null || product.category == selectedCategory) {
return true;
} else {
return false;
}