题目描述
写出一个表达式,它的结果为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.如何才能在调用时不加引号可以得到预期的效果(提示“输入的不是数字”)
你直接用
isLeapYear(asd);
报错?asd
这个变量定义了吗?isLeapYear('asd');
这样才是传入一个字符串asd
,不加逗号传入的是一个变量,如果这个变量没定义的话就报这个错了,要像下面这样先定义