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

建网站好长沙企业网站建设团队

建网站好,长沙企业网站建设团队,网站营销公司哪家好,wordpress 系统安装教程 pdfIterator迭代器和for/of循环原理 Iterator迭代器规范 自己创建一个Iterator类,来实现ES6中的迭代器规范: class Iterator {constructor(assemble) {// assemble:需要迭代的数据结构this.assemble = assemble// index:记录迭代的次数(或者索引)this.index = -1}// 必须具…Iterator迭代器和for/of循环原理 Iterator迭代器规范 自己创建一个Iterator类,来实现ES6中的迭代器规范: class Iterator {constructor(assemble) {// assemble:需要迭代的数据结构this.assemble = assemble// index:记录迭代的次数(或者索引)this.index = -1}// 必须具备next方法next() {this.index++let { assemble, index } = thisif (index = assemble.length) {// 迭代完毕return {done: true,value: undefined}}return {done: false,value: assemble[index]}} }创建一个实例对象,其应该符合迭代器规范的要求: itor.next() 具备next方法,执行这个方法可以依次遍历数据结构中的每一个成员每一次遍历返回的结果是一个对象 {done:false,value:xxx} done: 是否迭代完毕value: 当前获取的成员值 符合以上两个特点的对象,我们称之为符合迭代器规范的对象 let arr = [10, 20, 30, 40],itor = new Iterator(arr) console.log(itor.next()) // {done: false, value: 10} console.log(itor.next()) // {done: false, value: 20} console.log(itor.next()) // {done: false, value: 30} console.log(itor.next()) // {done: false, value: 40} console.log(itor.next()) // {done: true, value: undefined}在JS中,有很多数据结构,天生具备迭代器规范,例如: 我们主要看数据结构(对象)是否具备 Symbol.iterator 这个属性;有这个属性就具备迭代器规范,没有就不具备;具备这个规范,就可以使用 for/of 循环来迭代数据中的每一项值了。 数组 Array.prototype[Symbol(Symbol.iterator)]=function…部分类数组: arguments[Symbol(Symbol.iterator)]NodeList.prototype[Symbol(Symbol.iterator)] document.querySelectorAll('*')HTMLCollection.prototype[Symbol(Symbol.iterator)] document.getElementsByTagName('*')… 字符串 String.prototype[Symbol(Symbol.iterator)]Set/Map…但是对于纯粹对象「或者自己构建的类数组对象(以数字作为索引,索引从0开始逐级递增,有length属性表示长度)」等来讲,默认是不具备 Symbol.iterator 这个属性的,所以他们不具备迭代器规范「不能直接使用 for/of 循环」 for/of循环原理 重写数组迭代器规范(数组有内置的迭代器规范)来说明原理: // 数组迭代的方式 for、while、forEach/map、for/in、for/of... let array = [10, 20, 30, 40] array[Symbol.iterator] = function () {console.log('for/of Start');let self = this,// this-arrayindex = -1// 返回具备迭代器规范的对象-itorrreturn {next() {index += 2if (index = self.length) {return {done: true,value: undefined}}return {done: false,value: self[index]}}} } // let itorr = array[Symbol.iterator]() for (let val of array) {console.log(val); }// for/of循环主要用于获取数据结构中每一项的‘值’ for (let val of array) {console.log(val); }原理: 1.迭代执行,先执行数组的 Symbol.iterator 这个方法,获取一个具备迭代器规范的对象 - itor 2.开始迭代:每一次迭代都是把 itor.next 方法执行 把获取对象中的value属性值,赋值给val这个变量再看对象中done这个属性的值,如果是false,则继续迭代;如果是true,则结束迭代普通对象是不具备迭代器规范的: let obj = {name: '52lkk',age: 24,0: 100,[Symbol('AA')
http://www.hkea.cn/news/14292465/

相关文章:

  • 自己做网站申请域名图片设计模板免费下载
  • 百元便宜建站邢台123生活贴吧
  • 建设企业学习网站怎么注册com网站免费的
  • 做智能网站系统qq官网登录入口网页版
  • 佛山网站域名过期小学校园网站建设
  • 做问卷有哪些网站wordpress 站内信 群发
  • 做电脑网站手机能显示不出来怎么查询网站所有关键词
  • 诸暨哪些公司可以制作网站logo制作网站免费
  • 营销网站开发isuos可以做网站的电脑软件
  • 建站模板网站设计访问国外网站的软件
  • 江西城乡建设厅网站优秀网站
  • 公司网站域名的设计wordpress php安装
  • 受欢迎的企业网站建设公司网站建设计入什么科目
  • 网站怎么做搜索引擎优化、邢台网站招聘员工123
  • 那种电影网站怎么建设制作网页的第一步是什么
  • 受欢迎的广州做网站wordpress注册文件
  • 怎么做企业网站运营网站建设送企业邮箱吗
  • 如何利用分类信息网站做推广南阳网站seo报价
  • 农庄网站模板怎么查询网站开发公司
  • 十大软件免费下载网站排行榜wordpress 同步博客
  • 宁波营销网站建设涉密资质 网站建设
  • 网站根目录 设置wordpress广告栏
  • 做百度手机网站点击搜索引擎优化是什么意思啊
  • 免费广告设计制作appseo工具在线访问
  • 网站建设责任分解代理推广怎么做
  • 齐鲁建设网站内部网站做域名解析到端口
  • 深圳建站公司设计深业集团广州建设工程中心网站
  • 域名之后怎么做网站建网站权威机构
  • 大型电商网站开发成本wordpress 跳转到首页
  • 中宁建设局网站长沙微信网站公司