return不是终止函数吗?

新手上路,请多包涵
    function judgeLeapYear(year) {
        if (year % 100) {
            if (year % 400) {
                return year + '年是闰年'
            }
            return year + '年不是闰年'
        }
        if (year % 4) {
            return year + '年是闰年'
        }
        return year + '年不是闰年'
    }
    console.log(judgeLeapYear(2000)); 

输出的结果2000年不是闰年,请问不应该在上述代码第四行就拿到结果终止函数执行了吗

阅读 2.1k
4 个回答

2000 % 100 等于0,, 2000 % 4也等于0 。。。自己推算一下就知道了啊, 逻辑都错了

🤣我猜理解成除法了

% 是求余,2000 % 400 结果是 0,在 JS 里会被当成 false,所以不会进入第四行。

好好看文档吧,这些内容应该不难理解。

2000 % 100 = 0
2000 % 400 = 0
'0'的类型转换为false 所有条件不成立

function judgeLeapYear(year) {
        if (!(year % 100)) {
            if (!(year % 400)) {
                return year + '年是闰年'
            }
            return year + '年不是闰年'
        }
        if (!(year % 4)) {
            return year + '年是闰年'
        }
        return year + '年不是闰年'
    }
    console.log(judgeLeapYear(2000));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题