13. JS编程之流程控制

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

//输入
15
//输出
fizzbuzz

知识点:判断变量是否为number的方法

  1. typeof(num)
    该方法返回num的类型,可以识别出基本类型包括number、string、boolean、undefined、symbol,会把null、Array和object统归为object。

  2. isNaN(num)
    该方法判断num是否为非数字类型,若num不是number类型则返回true,是number类型就返回false。
    缺点:如果是一个空串或空格或NULL,而isNaN会当做数字0进行处理的。

  3. 正则表达式

 var reg = /^\d+.?\d*/;  //判断是否为数字
 reg.test(num);  //是为true,否为false

方法一
利用if...else if... else条件语句将每种情况进行判断输出,该语句只要符合一个条件就不会执行后面的条件。

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

方法二
利用多个if条件判断,每个条件都会执行,创建一个结果变量存储输出的内容,只要符合相应的条件就将对应的输出条件存入结果变量中,最后判断结果变量是否为空,不为空就输出结果变量,为空就输出参数num。

function fizzBuzz(num) {
    var str = '';
    if(num===null || typeof(num)!== 'number'){
        return false;
    }  
    if(num%3===0){
        str += 'fizz';
    }
    if(num%5===0){
        str += 'buzz';
    }
    return (str || num);
}

方法三
利用&&||来进行条件判断。
表达式1 && 表达式2:若执行表达式1返回true,则继续执行表达式2并返回2的结果;若执行1返回false,则不执行2,直接返回1的结果。
表达式1 || 表达式2:若执行1返回true,则直接返回1的结果,不执行2;若执行1返回false,就继续执行2,返回2的结果。

function fizzBuzz(num) {
    var str = '';
    (num%3===0) && (str += 'fizz');//(num%3) || (str += 'fizz')
    (num%5===0) && (str += 'buzz');//(num%5) || (str += 'buzz')
    isNaN(num) && (str = false);
    str === '' && (str = num);
    return str;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值