牛客网刷题打卡2021.3.11

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

function fizzBuzz(num) {
          
   
    if(isNaN(num)){
          
   
        return false
    }
    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
    }
    
}

FED36: 题目描述 将数组 arr 中的元素作为调用函数 fn 的参数

function argsAsArray(fn, arr) {
          
   
    return fn.apply(this,arr)
}

考点: 改变this指向

通过这道题我去了解了一下apply()和call()两种方法的定义与区别 传送门:

FED37: 题目描述 将函数 fn 的执行上下文改为 obj 对象

function speak(fn, obj) {
          
   
    return fn.apply(obj)
}

考点: 改变this指向

本题可以使用apply()、apply()和bind()方法均可实现

FED38: 题目描述 实现函数 functionFunction,调用之后满足如下条件: 1、返回值为一个函数 f 2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 , ’ 3、所有函数的参数数量为 1,且均为 String 类型

function functionFunction(str) {
          
   
    return f=function(string){
          
   
        return str+, +string
    }
}

考点: 闭包函数的使用

本题首先给形参str传入实参’Hello’,然后实参’world’与f(string)函数中的形参匹配,最终返回结果:Hello, world,注意中间的逗号后面有一个空格。

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