Thắc mắc về hàm IsNaN và Return (True/False)

Em mới học về JavaScript và có bài tập kiểm tra số nhập vào có phải là “số” không.

<script type="text/javascript">
      function tinhtong (){
            var soa = document.getElementById("soa");
            var sob = document.getElementById("sob");
            var kq = document.getElementById("kq");
            if ( isNaN (soa.value)  || isNaN(sob.value) ) {
                   alert = ("a hoặc b ko phải là số");
                   return false;
              } else {   
                       soa = parseFloat (soa.value);
                       sob = parseFloat (sob.value);
                       var tong= soa + sob ;
                       kq.value = tong;
                       return true;
                 }          
}
</script>

Em thắc mắc là nếu như số a (soa) hoặc số b (sob) nhập vào là chữ thì phải trả Return True chứ sao lại là False ạ.

Mong các cao nhân nói rõ giúp em về vấn đề này với ạ. Xin cảm ơn ạ

if ( isNaN (soa.value) || isNan(sob.value) ) {

isNaN khác với isNan <= bạn gõ chữ N hoa thử xem.

1 Like

Mình thấy code chạy vẫn đúng mà??
ý của bạn là hàm isNaN trả về false hay hàm tinhtong() trả về false?

Dạ, là hàm return false ngay chỗ isNaN đó ạ.
Nếu như số a và số b KHÔNG phải SỐ thì phải là return true chứ ạ.
Em đang thắc mắc chỗ này ạ.
Cảm ơn anh trước ạ !

Vậy là bạn hiểu sai NaN rồi :smiley:

Hàm isNaN là kiểm tra tham số đầu vào có phải là không phải số hay không. Nghe hơi lủng củng. Chính xác tiếng anh là “Is not a number?
Nên là nếu nhập vào chữ thì nó trả về true => hàm tinhtong() trả về false

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?