2014-06-17 2 views
-1

나는 자바 스크립트 무거운 응용 프로그램을하고 있어요, 나는 다음과 같은 코드가 있습니다 문, 나는 휴식을 배치하고있는 경우 를 들어자바 스크립트 또는 운영자 정확하지만, 문이 예상대로 작동하지 않는 경우

function displayingNotes() { 
    if (!($scope.overseasTravelTask.RegisteredKeeperName.toLowerCase() 
      .indexOf("zenith") > -1 || 
     $scope.overseasTravelTask.RegisteredKeeperAddressLine1.toLowerCase() 
      .indexOf("zenith") 
     ) 
    ) 
    { 
     $scope.calloutClass = 'callout-danger'; 
     $scope.calloutMessage = 'We (Zenith) cannot provide this vehicle with the necessary documents.'; 
     $scope.disableNextBtn = true; 
    } 
    else 
    { 
     $scope.calloutMessage = 'Please ask driver about this.'; 
    } 
} 

을 - 포인트 및 크롬 콘솔에서 내 논리를 확인하고 논리가 올바르게 보이지만, F10 button을 클릭하면 if 문 안에 들어가기를 기대하며 대신에 뛰어 넘습니다.

나는 이상한 행동을 screen-cast에 잡았습니다.

도움을 주시면 감사하겠습니다.

감사합니다. 당신의 ||

답변

4

두 번째 피연산자는 다음과 같습니다

$scope.overseasTravelTask.RegisteredKeeperAddressLine1.toLowerCase().indexOf("zenith") 
숫자가 발생합니다

... : 문자열의 인덱스, 또는 -1 발견되지 않는 경우는. 따라서 불리언 값으로 강제 변환 될 때 하위 문자열이 인덱스 0에있는 경우를 제외하고 모든 경우 (-1, 23, 42 등)의 경우 true이되며이 경우 false이됩니다.

아마 !== -1을 원했을 것입니다.

+0

감사합니다. @TJCrowder. 나는 마지막에'> -1'을 가졌다 고 생각했다. 내가 검사를하고 있었을 때 screencast에 입력했음을 알았지 만 코드를 자세히 보지 못했습니다. – Ciwan

관련 문제