반응형
숫자 인지 아닌지 판단할 수 있는 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>
▼ 아래 소스는 문자열로 되어 있는 숫자일 경우 입니다. 문자열인데도 숫자로 인식해서 false 로 리턴하게 됩니다. 문자열이 숫자인지 아닌지 판단해서 isNaN() 함수를 수행합니다. 공백이 들어가도 마찬가지로 숫자로 인식하게 됩니다.
<script type="text/javascript">
<!--
document.write("isNaN('50') = " + isNaN("50") + "<br/>");
document.write("isNaN(' 50 ') = " + isNaN(" 50 ") + "<br/>");
//-->
</script>
▼ 다음은 문자열에 숫자와 문자가 들어간 경우 입니다. 숫자 외에 문자열이 들어가 있으면 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>
▼ 다음은 날짜 데이터일 경우 입니다. 날짜를 문자열이 아닌 숫자로 조합해서 넘기게 되면 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>
반응형
'웹 프로그래밍 > 자바스크립트' 카테고리의 다른 글
자바스크립트 find() 함수 조건에 맞는 요소 찾기 (2) | 2023.12.31 |
---|---|
자바스크립트 foreach() 함수 배열 각 요소에 함수 실행 (0) | 2023.12.17 |
자바스크립트 reduce() 함수 배열 결합해서 단일 값 반환하기 (0) | 2023.12.07 |
자바스크립트 Math.max() 함수 가장 큰 숫자 반환하기 (0) | 2023.12.07 |
자바스크립트 함수 reverse() 배열 요소 역순으로 뒤집는 방법 (1) | 2023.12.03 |
자바스크립트 map() 함수 배열 값을 변형해서 새로운 배열 만들기 (2) | 2023.12.03 |
자바스크립트 filter() 함수 배열에서 특정 조건 만족하는 데이터 찾기 (0) | 2023.12.03 |
자바스크립트 함수 sort() 이용해서 배열 정렬하는 방법 (2) | 2023.11.29 |