2012-10-06 3 views
0

성공한 경우 정수를 반환하는 함수가 있는데, 그렇지 않으면 그냥 false을 반환합니다.bool이 아닌 정수로 0을 반환합니다.

여기 내 코드의 일부 :

function hellofunc(x) { 
//.... 

     if (returnvalue.length == 1) { 
      return returnvalue[0]; 
     } else if (returnvalue.length > 1) { 
      return returnvalue[rx(0, returnvalue.length - 1)]; 
     } else { 
      return false; 
     } 
    } 

기능이 호출

-> return returnvalue[0];는 정수로 0을 제공합니다. 내가 hellofunc(something);를 호출 할 때

는하지만이 "0"콘솔 만에 기록을 참조 나는 그것이 false 반환 거짓 일,

자바 스크립트 0false 인 생각을 입력 할 때? 그럼 내가 여기서 뭘하니? 나는 이것을합니까?

hellofunc(something)!==false 

아니면 더 좋은 해결책이 있습니까? 당신이 더 나은 솔루션을 said..no로

+0

'returnvalue' 배열에 숫자가 있습니까? 그렇다면 숫자를 어떻게 부울로 해석 하시겠습니까? 어떤 숫자가 '사실'로 끝나야하고 '거짓'으로 끝날 것인가? – Guffa

+0

예, 자바 스크립트는 '0'을 '거짓'또는 '거짓'으로 간주합니다. 불리언 조건으로 대체 할 수있는 값이 있습니다. 다른 "거짓"값은 null, undefined, NaN 및' ""입니다. –

+0

당신의 함수가 무엇인지 모르겠지만 모범 사례는 함수가 항상 같은 데이터 유형을 반환해야한다고 제안합니다. 성공시 정수를 반환하면 일반적인 실패시 반환 값은 음수입니다. 예 : -1을 반환합니다. String.indexOf (str); 좋은 예를 들면 ... – scunliffe

답변

3
hellofunc(something) !== false 

.. :)

1

대부분의 프로그래밍 언어에서 0은 false입니다. 그것은 이진수로 표현 된 것에서옵니다. 불리언 논리에서 당신은 오직 두 가지 선택 만 할 수 있습니다 - 참과 거짓, 당신은 그것을 나타낼 때 한 비트 만 필요합니다. True의 경우 1, False의 경우 0입니다.

관련 문제