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

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

经验分享 程序员 微信小程序 职场和发展