2012-09-13 2 views
-1

사용자로부터 숫자를 입력 받아 음수인지 아니면 양수인지를 결정하는 자바 스크립트가 주어진 경우 어떤 상황에서 예외가 발생합니까?입력 번호가 자바 스크립트에서 음수인지 아니면 양수인지 확인

+1

이 숙제처럼 보인다. 도움이 될만한 내용이 있습니다. http://en.wikibooks.org/wiki/JavaScript/Operators#Comparison_operators – Blender

+0

질문이 명확하지 않습니다. 네가하고 싶은게 뭐야? 양수 또는 음수, 또는 입력 유효성 검사? – karthikr

+0

사용자 입력이 음수인지 아니면 양수인지를 결정하는 javascript 프로그램 id가 예외를 throw해야하는 시간이 언제 묻는 지 –

답변

2

예외적으로 상황에 예외를 던져야합니다. 숫자의 입력 (양수 또는 음수)을 수락하는 경우 문자열이나 객체를 말하는 것과 같이 조건에 맞지 않는 항목을 예외로 간주해야합니다.

예 :

// Assume the variable 'input' contains the value given by user... 
if(typeof input != "number") { 
    throw "Input is not number!" 
} 
else { 
    // ... handle input normally here 
} 
+0

''5 '<'10 ''이 오류를 발생시키는 이유는 무엇입니까? – RobG

0

대답은 코드에 따라 달라집니다.

명백한 기능은 다음과 같습니다

function isPosOrNeg(x) { 
    return x < 0? 'negative' : 'positive'; 
} 

예외를 던지는 것을 보는 것은 매우 어렵습니다. x이 해석 할 수없는 참조 인 경우 하나 일 수 있지만 실제로는 선언 된 변수 인 공식 매개 변수는 아닙니다.

< 연산자는 제공된 값에 따라 undefined을 반환 할 수 있지만 오류를 throw하지 않는 abstract relational comparison algorithm을 사용합니다.

undefined은 호출자가 처리 할 수있는 완벽하게 합리적인 응답이므로 오류가 발생하지 않습니다. 아마도

당신이 매개 변수를 테스트하려면

:
function isPosOrNeg(x) { 

    if (isNaN(Number(x))) { 
    // throw an error 
    } 

    return x < 0? 'negative' : 'positive'; 
} 

은 그래서 isPosOrNeg('foo')에서 오류가 발생하지만 isPosOrNeg('5')하지 않습니다.

0

이 작업을 시도 할 수 있습니다 :

var inp="your input value"; 
    if(isNaN(inp)){ 
     return "Not a number"; 
    } else { 
     if(inp > 0) { 
      return 'positive number'; 
     } else if(inp < 0) { 
      return 'negative number'; 
     } else { 
      return 'number is zero'; 
     } 
    } 
관련 문제