当前位置: 首页 > wzjs >正文

游戏网站开发试验报告皋兰县城乡和住房建设局网站

游戏网站开发试验报告,皋兰县城乡和住房建设局网站,上海住房与建设部网站,烟台做网站的公司文章目录 2621睡眠函数2629复合函数2665计数器|| 这三个题目涉及setTimeout、promise、数组reduce方法,闭包。 2621睡眠函数 请你编写一个异步函数,它接收一个正整数参数 millis ,并休眠 millis 毫秒。要求此函数可以解析任何值。 原理&am…

文章目录

    • 2621睡眠函数
    • 2629复合函数
    • 2665计数器||

这三个题目涉及setTimeout、promise、数组reduce方法,闭包。

2621睡眠函数

请你编写一个异步函数,它接收一个正整数参数 millis ,并休眠 millis 毫秒。要求此函数可以解析任何值。
在这里插入图片描述

  • 原理:返回一个promise,在这个promise中进行一个对应时长的延迟setTimeout,延迟结束执行resolve。
async function sleep(millis) {return new Promise((resolve,reject)=> {setTimeout(()=>{resolve();},millis)})
}

setTimeout的本质是延迟执行,只执行一次。一般用于延迟指定的时间后执行一次回调函数。
setInterval的本质是定时执行,会不断重复执行,直到取消。所以这个题要用setTimeout。

2629复合函数

请你编写一个函数,它接收一个函数数组 [f1, f2, f3,…, fn] ,并返回一个新的函数 fn ,它是函数数组的 复合函数 。
[f(x), g(x), h(x)] 的 复合函数 为 fn(x) = f(g(h(x))) 。
一个空函数列表的 复合函数 是 恒等函数 f(x) = x 。
你可以假设数组中的每个函数接受一个整型参数作为输入,并返回一个整型作为输出。
在这里插入图片描述

  • 原理:初始值为x,(param,fn)代表param初始值= x,而当前正在处理的数组元素是fn,箭头函数执行fn(param),然后将结果赋给param,作为下一个fn的入参,由于从右往左执行,因此使用reduceRight代替reduce。
/*** @param {Function[]} functions* @return {Function}*/
var compose = function(functions) {  return function(x) {return functions.reduceRight((param,fn)=>fn(param),x)}
};
/*** const fn = compose([x => x + 1, x => 2 * x])* fn(4) // 9*/
  • 如果这里functions.reduceRight((target,fn)=>fn(target),x)还是感觉很晕,可以
    对应数组累加和arr.reduce((acc,curvalue)=>acc+curvalue,0)进行理解。
    还不理解就要补点reduce的语法知识了,看JS数组方法reduce来深入了解一下reduce的语法。

2665计数器||

请你写一个函数 createCounter。这个函数接收一个初始的整数值 init。并返回一个包含三个函数的对象。
这三个函数是:
increment() 将当前值加 1 并返回。
decrement() 将当前值减 1 并返回。
reset() 将当前值设置为 init 并返回。
在这里插入图片描述
原理:闭包。
什么是闭包?
闭包指的是一个函数可以记住其外部变量并且可以访问这些外部变量

函数在创建时,会创建一个隐藏起来的environment属性,这个属性记住了它们创建的位置,当在函数内部找不到变量时,它们可以访问外部变量。

在increment()中并没有定义temp,于是访问createCounter()中的temp,++temp会返回+1后的结果,同时这也将修改外部temp的值,所以如果连续调用就会持续加1。其他函数同理。

/*** @param {integer} init* @return { increment: Function, decrement: Function, reset: Function }*/
var createCounter = function(init) {let temp = init;return { increment:function(){return ++temp;},decrement:function(){return --temp;},reset:function(){temp = init;return temp;}}
};
http://www.dtcms.com/wzjs/809673.html

相关文章:

  • 昆明森贤网站建设seo技术好的培训机构
  • 字体设计教程网站好竞价推广案例
  • 小勇cms网站管理系统智联招聘网站多少钱做的
  • 营销型网站建设公司怒江商城网站建设
  • 如何建设一个简易网站网站建设管理考核办法
  • 企业内部门户网站建设方案重庆网站seo
  • 合肥室内设计公司有哪些重庆做优化的网络公司
  • php 茶叶网站网络销售话术900句
  • 生物科技网站建设方案网站被k十大原因
  • 网站开发毕业设计开题报告网站开发公司安心加盟
  • 哪些网站是python做的网站怎么备案在哪里
  • 购物网站的基本功能江西中创建设有限公司网站
  • 能够给上市公司做网站意味着什么网站内容建设策略
  • 做网站怎么上传图片做的怎样 英文网站
  • 定制网站开发app费用泰安网站建设如何
  • 我对网站开发的项目反思石家庄住房和城乡建设厅官方网站
  • 域名管理网站淮北市相山区建设局网站
  • 企业门户网站建设行情《电子商务网站开发与管理》书籍
  • 做摄影和后期的兼职网站关键词排名批量查询软件
  • 郑州做网站msgg东莞优化网页关键词
  • html5个人网站源码id设计
  • 陕西中小企业网站建设推广认证网站源码
  • it项目网站开发的需求文档商品详情页设计
  • 专门做考研的网站企业做pc网站需要什么资料
  • 企业新网站seo推广个人如何通过网站赚大钱
  • 做平面设计必看的网站wordpress主机推荐
  • 网站浏览器兼容性问题网站开发是前端还是后端
  • 公司网站文章小程序开发接单
  • 如何做一张网站平面效果图南昌企业建站程序
  • 做油漆的网站公众号可以添加wordpress