关于JavaScript判断是否为数字

题目描述

写出一个表达式,它的结果为2018年是否为闰年。

判断闰年的条件:
是400的倍数,或者是4的倍数且不是100的倍数。
1900 false
2000 true
2004 true

思路

先通过 if 判断是否为数字,为数字时,嵌套if判断闰年的条件
若不是数字则输出“输入的不是数字”

遇到的问题

  if (typeof year != 'number') {        return console.log("输入的不是数字");
   }

通过typeof判断year的类型,但是如果输入非数字会直接报错“xxx is not defined”
但是在输入框加上“”就好了

整体代码

function isLeapYear(year) {    if (typeof year != 'number') {        return console.log("输入的不是数字");
    } else {        if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {            return console.log(year + "年是闰年");
        } else {            return console.log(year + "年不是闰年");
        }
    }
}
isLeapYear(asd);

期望解惑

1.为什么会出现这样的情况,出现的原因是什么。
2.如何才能在调用时不加引号可以得到预期的效果(提示“输入的不是数字”)

在此感谢您的解答


FFIVE
浏览 453回答 1
1回答

30秒到达战场

你直接用isLeapYear(asd);报错? asd这个变量定义了吗?isLeapYear('asd'); 这样才是传入一个字符串asd,不加逗号传入的是一个变量,如果这个变量没定义的话就报这个错了,要像下面这样先定义var asd = 'abcd'; isLeapYear(asd);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript