牛客网刷题打卡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,注意中间的逗号后面有一个空格。
