본문 바로가기
javaScript/JS Tutorial

[javaScript]다른 유형 비교

by mooyou 2022. 11. 30.
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 호출

 

 

 

참고 : https://www.w3schools.com/js/js_comparisons.asp

728x90
반응형

댓글