728x90
300x250
서로 다른 유형의 데이터를 비교하면 예기치 않은 결과가 발생할 수 있다.
문자열을 숫자로 비교할때 javaScript는 문자열을 숫자로 변환한다.
빈 문자열은 0으로 변환,
숫자가 아닌 문자열은 NaN으로 변환되고 항상 거짓을 호출한다.
- 2 < 12 true
- 2 < "12" true
- 2 < "John" false
- 2 > "John" false
- 2 == "John" false
- "2" < "12" false
- "2" > "12" true
- "2" == "12" false
<input id="age" value="18" />
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
let voteable;
let age = Number(document.getElementById("age").value);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}
document.getElementById("demo").innerHTML = voteable + " to vote";
}
</script>
입력받은 값은 age 변수에 넣고 숫자로 변환이 안되는 문자열을 입력했을 경우 NaN으로 변환되기 때문에 isNaN(age)을 통해서 NaN이 있을 경우 Input is not a number메시지를 띄운다.
그렇지 않을 경우 숫자로 변환 18이하일 경우 Too young 이상일 경우 old enough 호출
728x90
반응형
'javaScript > JS Tutorial' 카테고리의 다른 글
[javaScript]옵셔널 체이닝 연산자 ?. (1) | 2022.12.02 |
---|---|
[javaScript]Nullish 병합 연산자 ?? (0) | 2022.12.01 |
[javaScript]1-100 랜덤값 구하기 (0) | 2022.11.29 |
[javaScript] Math.sqrt() 제곱근 (0) | 2022.11.28 |
[javaScript]Math.pow() 거듭제곱 (0) | 2022.11.27 |
댓글