我是JavaScript和AngularJS的初学者。所以我遇到了来自Adam Freeman书籍的以下代码
var selectedCategory = null;
...
$scope.categoryFilterFn = function(product) {
return selectedCategory == null ||
product.category === selectedCategory;
};
我对上面的return
声明感到困惑,你们可以重写上面的代码并使用清晰的代码(没有简写)。
感谢。
答案 0 :(得分:3)
这是返回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;
}
答案 1 :(得分:2)
return
语句可以轻松地重写为if()
块,如下所示:
$scope.categoryFilterFn = function(product) {
if( selectedCategory == null || product.category === selectedCategory )
{
return true;
}
return false;
};
基本上,如果指定条件的 return
,则true
将返回true
。否则,它将返回false
。