0

JavaScript 및 AngularJS에서 초보자입니다. 그래서 너희들, 내가 위의 return 문 혼란을 얻을JavaScript의 짧은 부울 논리

var selectedCategory = null; 
... 
$scope.categoryFilterFn = function(product) { 
    return selectedCategory == null || 
     product.category === selectedCategory; 
}; 

아담 프리먼 책에서 코드를 수있는 다음과 같은하여 발생할 명확한 코드 (NO 속기)와 위 코드를 쓰기 재.

감사합니다. 다음과 같이

답변

3

이 값은 boolean 값을 반환하는 짧은 형식입니다. 자세히 보면 :

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

여기 return 문은 두 가지 표현이 있습니다 product.category === selectedCategory

메서드가 반환, 그것은이 두 식을 개별적으로 평가합니다 selectedCategory == null

    1. . 값을 대입하여 값을 반환하고 고려 행해져 Yout selectedCategorynull이며, selectedCategory 다음 문 것은 결국 마찬가지로

      return true; // (true || true) = true 
      

      로 단순화

      return true || true; 
      

      되어있는 product.category은이 표현을 생각할 수 있고, 동일 그들을 개별적으로 평가하십시오. 이것에 대한

      더 긴 버전은 다음과 같습니다

      if (selectedCategory == null || product.category == selectedCategory) { 
          return true; 
      } else { 
          return false; 
      } 
      
  • +0

    당신의 긴 버전의'else' 블록에 대한 필요가 없습니다. – BenM

    +0

    @BenM 예. 알아. 그가 초보자이기 때문에 OP에 대한 더 명확하게하기 위해 그것을 거기에 두십시오. –

    2

    return 문은 if() 블록으로 쉽게 다시 작성할 수 있습니다 : 기본적으로

    $scope.categoryFilterFn = function(product) { 
    
        if(selectedCategory == null || product.category === selectedCategory) 
        { 
         return true; 
        } 
    
        return false; 
    }; 
    

    return 어느 특정 조건의이 true입니다 true경우 반환 할 것입니다. 그렇지 않으면 false을 반환합니다.