2012-07-25 5 views
1

숫자가 포함되어 있거나 포함되어 있지 않을 수도있는 객체 속성이 있고 해당 숫자는 0 일 수도 있고 같지 않을 수도 있습니다.값이 숫자이고 0보다 큰 숫자 인 경우 자바 스크립트 테스트

var TheVar = parseInt(SomeObject.SomeVar, 10); 

if (!TheVar > 0) { 
    TheVar = "-"; 
} 

내가 TheVar가 양수 또는 "-" 중 하나가되고 싶어요 : 순간, 나는이 있습니다. 내 조건문이 모든 사건을 다루고 있는지 궁금한가요?

의견을 보내 주셔서 감사합니다.

+1

번호로 수락 하시겠습니까? 성공적으로 숫자로 강제 변환 될 수 있고'NaN '이 나오지 않으면 받아 들일 것인가? 아니면 이미 '숫자'원시 값을 필요로합니까? –

+1

... 어떤 이유로 응답하지 않으므로 원시 숫자가 아닌 몇 가지 예제를 제공 하겠지만'> '연산자에 의해 양수로 성공적으로 강제 변환 될 것입니다. 숫자 문자열 ...''123 "', 배열의 숫자 ...'[123]', 배열의 숫자 문자열 ...'["123 "]', 16 진수 문자열 ...''0x15 ' ', 배열의 16 진수 문자열 ...'[ "0x15"]', 양수 부울 ...'true', Number 객체 래퍼 ...'new Number (123)'. 아마 내가 생각하지도 않는 것들이있을 것입니다. –

+0

@amnotiam : sry, 저녁 먹고 있었어. 나는 당신의 의견을 주셔서 감사합니다, 귀하의 의견을 upvoted. – frenchie

답변

4

아니요 괄호가 없습니다.

if(!(TheVar > 0)) 

NaN > 0 false를 반환의 if 조건은 통과 있도록.

+0

아! 죄송합니다보다 더 안전; 팁 고마워. – frenchie

+0

실제로'boolean> 0 '이됩니다.'!'는'>'보다 우선 순위가 높으므로'!'연산자의 결과는'boolean'입니다. ...하지만 해결책은 정확합니다. :) –

+0

... 오, 아마 당신의'NaN> 0' 진술을 오해했을 것입니다. 지금 네가하는 말을 알아 들었다. OP가 강압을 원한다면 문제는 여기 있습니다. '[123]> 0; // 참' –

관련 문제