일반적으로:
if(2 > 10) { alert("不正确!"); }
이 비교는 원하는 결과가 아닙니다. 2>1과 동일하며 10번째를 빼내고 비교하다.
해결책:
if(eval(2) > eval(10)) { alert("不正确!"); }
eval() 함수는 특정 객체를 참조하지 않고 코드 문자열을 평가하는 데 사용됩니다.
<script> function check() { var num1=document.form1.num1.value; var num2=document.form1.num2.value; if(num2>num1) <!-错误写法--> { alert('num2 > num1!'); return false; } return true; } </script> <script> function check() { var num1=document.form1.num1.value; var num2=document.form1.num2.value; if(parseInt(num2)>parseInt(num1)) <!-正确写法(转换成INT)--> { alert('num2 > num1!'); return false; } return true; } </script>
EG:
당신이 작성한 프로그램에서 110과 18이 가장 큽니다. 왜냐하면
이 두 개 때문입니다. 숫자는 둘 다 문자열이고 1과 1이 같다면 1과 8을 비교한다. 물론 8이 크니까 18도 크다
비교하기 전에 INT형으로 변환한 뒤
(parseInt(num2)>parseInt(num1))