JavaScript编程题:流程控制

问题

题目地址:流程控制

题目描述
实现 fizzBuzz 函数,参数 num 与返回值的关系如下:
1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz
2、如果 num 能被 3 整除,返回字符串 fizz
3、如果 num 能被 5 整除,返回字符串 buzz
4、如果参数为空或者不是 Number 类型,返回 false
5、其余情况,返回参数 num

示例

输入:
15
输出:
fizzbuzz

实现
function fizzBuzz(num) {
    if (typeof num != 'number') {
        return false;
    } else if(num % 3 === 0 && num % 5 === 0) {
        return 'fizzbuzz';
    } else if(num % 3 === 0) {
        return 'fizz';
    } else if(num % 5 === 0) {
        return 'buzz';
    } else {
        return num;
    }
}

//测试:
console.log(fizzBuzz(0)); // 'fizzbuzz' ,注意0可以被任何数整除,当然也包括3、5
分析

1.使用余除“%”,判断余数是否为0即可。但是需要注意下几个判单的顺序,判断number类型可以放在最前面,如果类型错误直接返回false,而不需要进行其它的判断了。

2.判断“如果参数为空或者不是 Number 类型”,这两种情况,其实都直接用下面的判别式即可

if (typeof num != 'number') {...}

因为如果传入参数为空,num的值会为undefined。它的类型是"undefined",同样不为“number”

typeof undefined != 'number'// true

有些答案为了判断参数为空,还多写了一些复杂的判断,感觉其实没必要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值