자바스크립트(Javascript) 숫자 여부를 판단하는 isNaN 함수 사용하기

 

환경: Eclipse Mars

 

숫자 인지 아닌지 판단할 수 있는 isNaN 함수는 숫자일 경우 False, 문자이면 True 를 반환합니다. paseInt 함수에서 텍스트를 숫자로 전환할 때 문자일 경우 NaN 을 리턴하는 것과 같습니다.

 

아래 소스는 숫자일 경우 입니다. 그럼 isNaN 함수는 false 리턴 합니다. isNaN 함수의 인수로 실수뿐만 아니라 식이 들어가도 숫자로 인식됩니다. 내부적으로 계산한 결과값이 인수로 넘어가겠죠

<script type="text/javascript">
<!--
	document.write("isNaN(222) = " + isNaN(222) + "<br/>");
	document.write("isNaN(-5.12) = " + isNaN(-5.12) + "<br/>");
	document.write("isNaN(10-5) = " + isNaN(10-5) + "<br/>");
	document.write("isNaN(0) = " + isNaN(0) + "<br/>");
//-->
</script>

자바스크립트(Javascript) 숫자 여부를 판단하는 isNaN 함수 사용하기


아래 소스는 문자열로 되어 있는 숫자일 경우 입니다. 문자열인데도 숫자로 인식해서 false 로 리턴하게 됩니다. 문자열이 숫자인지 아닌지 판단해서 isNaN() 함수를 수행합니다. 공백이 들어가도 마찬가지로 숫자로 인식하게 됩니다

<script type="text/javascript">
<!--
	document.write("isNaN('50') = " + isNaN("50") + "<br/>"); 
	document.write("isNaN('   50 ') = " + isNaN("   50 ") + "<br/>"); 
//-->
</script>

자바스크립트(Javascript) 숫자 여부를 판단하는 isNaN 함수 사용하기

 

다음은 문자열에 숫자와 문자가 들어간 경우 입니다. 숫자 외에 문자열이 들어가 있으면 true 로 판단합니다. parseInt() 함수는 정수로 변환할 때 아래와 같은 경우 결과값이 50 이지만 Number() 함수는 NaN 을 리턴합니다. 그러니까 내부적으로 Number()함수를 사용해서 판단하는 것 같습니다

<script type="text/javascript">
<!--
	document.write("isNaN('50 AAA') = " + isNaN("50 AAA") + "<br/>"); 
	document.write("isNaN('AAA 50') = " + isNaN("AAA 50") + "<br/>"); 
//-->
</script>

자바스크립트(Javascript) 숫자 여부를 판단하는 isNaN 함수 사용하기

 

다음은 날짜 데이터일 경우 입니다. 날짜를 문자열이 아닌 숫자로 조합해서 넘기게 되면 false 로 인식합니다. 숫자 변환이 가능하다는 것이죠. 그런데 동일한 날짜를 문자열로 넘기면 변환이 되지 않기 때문에 true 를 리턴합니다. 숫자를 문자열로 만들어서 넘겼을 때와 차이가 있죠

<script type="text/javascript">
<!--
	document.write("isNaN(2015/10/05) = " + isNaN(2015/10/05) + "<br/>"); 
	document.write("isNaN(\"2015/10/05\") = " + isNaN("2015/10/05") + "<br/>");
//-->
</script>

자바스크립트(Javascript) 숫자 여부를 판단하는 isNaN 함수 사용하기


Posted by 녹두장군