理解Javascript返回语句

Sac*_*nth 0 javascript angularjs

我已经看到了下面的代码,我不太清楚发生了什么.函数中没有设置返回类型,所以我无法弄清楚ORing 3字符串会做什么.这个方法将返回什么以及OR有什么作用?

 return $scope.filterLabels[key] ||
                $scope.filterLabels[oldSchoolFacetCode()] ||
                key;
Run Code Online (Sandbox Code Playgroud)

Nie*_*sol 7

||运算符返回左边的参数,如果它是truthy,否则正确的.

例如,null || false计算结果为false,而false || nullnull.

考虑到这一点,return声明将返回:

  • $scope.filterLabels[key] 如果是真的
  • $scope.filterLabels[oldSchoolFacetCode()] 如果第一个是假的,这是真的
  • key 如果以上都没有归还

该代码实际上是简写:

if( $scope.filterLabels[key]) return $scope.filterLabels[key];
if( $scope.filterLabels[oldSchoolFacetCode()]) return $scope.filterLabels[oldSchoolFacetCode()];
return key;
Run Code Online (Sandbox Code Playgroud)