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