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

银行网站开发技术方案seo网站关键词优化

银行网站开发技术方案,seo网站关键词优化,青岛建筑,做网站的需要什么要求文章目录 [TOC] 一道解构面试题题目运行结果 原理概念数组迭代器 答案答案(1)、在对象中添加一个数组迭代器1.使用临时数组添加迭代器2. 对象值输出结果3.使用Object.values(this);拿到对象的值 答案(2)、在对象原型上添加数组迭代器1.按步骤实现数组迭代器2. 简化步骤 答案(3)…

文章目录

    • @[TOC]
  • 一道解构面试题
    • 题目
    • 运行结果
  • 原理
    • 概念
    • 数组迭代器
  • 答案
    • 答案(1)、在对象中添加一个数组迭代器
      • 1.使用临时数组添加迭代器
      • 2. 对象值输出结果
      • 3.使用Object.values(this);拿到对象的值
    • 答案(2)、在对象原型上添加数组迭代器
      • 1.按步骤实现数组迭代器
      • 2. 简化步骤
    • 答案(3)、使用迭代器生成器

一道解构面试题

题目

//让下面的代码成立
var [a, b] = { a:1, b: 2 };

运行结果

类型错误:{(intermediate value)(intermediate value)} is not iterable表示这个对象是不可迭代的。

var [a, b] = { a:1, b: 2 };^TypeError: {(intermediate value)(intermediate value)} is not iterableat Object.<anonymous> (e:\Study\Web前端\√061.一道解构的面试题js\tempCodeRunnerFile.js:1:14)at Module._compile (node:internal/modules/cjs/loader:1155:14)at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)at Module.load (node:internal/modules/cjs/loader:1033:32)at Function.Module._load (node:internal/modules/cjs/loader:868:12)at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)at node:internal/main/run_main_module:22:47

原理

概念

解构的对象不一定是数组,只要这个对象是可迭代的对象。数组本身就是一个可以迭代的对象。所以我们只有将{ a:1, b: 2 }变成可以迭代的对象就能解决这个问题。

JavaScript 中,可迭代对象是指具有 Symbol.iterator 方法的对象。这个方法返回一个迭代器(Iterator)对象,它通过 next() 方法提供对可迭代对象中的每个元素的访问。

除了数组,还有一些其他的内置类型,例如字符串SetMap等,都是可迭代对象。此外,自定义对象也可以实现可迭代接口,使其成为可迭代对象。

{[Symbol.iterator]:function(){return 迭代器}
}

数组迭代器

下面以数组[1,2,3]作为示例,了解可迭代的对象的规则:

  1. 查看数组的Symbol.iterator类型:[Function: values]表示是一个方法
    代码
var arr = [1,2,3];
console.log(arr[Symbol.iterator]);

运行结果

[Function: values]
  1. 查看数组的Symbol.iterator方法的返回值:Object [Array Iterator] {}表示数组迭代器。
    代码
var arr = [1,2,3];
const iter = arr[Symbol.iterator]();
console.log(iter);

运行结果

Object [Array Iterator] {}

3.查看数组迭代器中的next类型:[Function: next]表示方法。
代码

var arr = [1,2,3];
const iter = arr[Symbol.iterator]();
console.log(iter.next);

运行结果

[Function: next]

4.使用迭代器的next()方法执行一次:获取第1个结果{ value: 1, done: false }
代码

var arr = [1,2,3];
const iter = arr[Symbol.iterator]();
console.log(iter.next());

运行结果

{ value: 1, done: false }

5.使用迭代器的next()方法执行两次:获取第1、2个结果{ value: 1, done: false } { value: 2, done: false }
代码

var arr = [1,2,3];
const iter = arr[Symbol.iterator]();
console.log(iter.next());
console.log(iter.next());

运行结果

{ value: 1, done: false }
{ value: 2, done: false }

6.使用迭代器的next()方法执行三次:获取第1、2、3个结果{ value: 1, done: false } { value: 2, done: false } { value: 3, done: false }
代码

var arr = [1,2,3];
const iter = arr[Symbol.iterator]();
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());

运行结果

{ value: 1, done: false }
{ value: 2, done: false }
{ value: 3, done: false }

7.使用迭代器的next()方法执行四次:获取第1、2、3个结果及迭代完成标志{ value: 1, done: false } { value: 2, done: false } { value: 3, done: false } { value: undefined, done: true },其中{ value: undefined, done: true }表示迭代器对象已经完成了所有的迭代操作。
代码

var arr = [1,2,3];
const iter = arr[Symbol.iterator]();
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());

运行结果

{ value: 1, done: false }
{ value: 2, done: false }
{ value: 3, done: false }
{ value: undefined, done: true }

8.使用迭代器的next().value方法模拟var [a,b] = [1,2,3];的解构。
代码

var arr = [1,2,3];
const iter = arr[Symbol.iterator]();
var a = iter.next().value;
var b = iter.next().value;
console.log(a, b);

运行结果

1 2

答案

答案(1)、在对象中添加一个数组迭代器

1.使用临时数组添加迭代器

代码

var [a, b] = { a: 1, b: 2,[Symbol.iterator](){var arr = [1,2];const iter = arr[Symbol.iterator]();return iter;},
};
console.log(a, b);

运行结果

1 2

2. 对象值输出结果

代码

var [a, b] = { a: 3, b: 4,[Symbol.iterator](){var arr = [1,2];const iter = arr[Symbol.iterator]();return iter;},
};
console.log(a, b);

运行结果

1 2

3.使用Object.values(this);拿到对象的值

代码

var [a, b] = { a: 3, b: 4,[Symbol.iterator](){var arr = Object.values(this);const iter = arr[Symbol.iterator]();return iter;},
};
console.log(a, b);

运行结果

3 4

答案(2)、在对象原型上添加数组迭代器

1.按步骤实现数组迭代器

代码

Object.prototype [Symbol.iterator] = function () {var arr = Object.values(this);const iter = arr[Symbol.iterator]();return iter;
}
var [a, b] = { a:1, b: 2 };
console.log(a, b);

运行结果

1 2

2. 简化步骤

代码

Object.prototype [Symbol.iterator] = function () {return Object.values(this)[Symbol.iterator]();
}
var [a, b] = { a:1, b: 2 };
console.log(a, b);

运行结果

1 2

答案(3)、使用迭代器生成器

下面所示代码中的生成器函数function* () {}定义了一个迭代器生成器。当该迭代器被调用时,它会返回一个可迭代对象,并且通过yield*语句将对象的值作为迭代器的值逐个产生出来。
代码

Object.prototype [Symbol.iterator] = function* () {return yield* Object.values(this);
}
var [a, b] = { a:1, b: 2 };
console.log(a, b);

运行结果

1 2

文章转载自:
http://spake.c7498.cn
http://raad.c7498.cn
http://cardioscope.c7498.cn
http://recommendatory.c7498.cn
http://encyclopedic.c7498.cn
http://dragnet.c7498.cn
http://eradiate.c7498.cn
http://facultize.c7498.cn
http://saponification.c7498.cn
http://dendrite.c7498.cn
http://hammerblow.c7498.cn
http://greenbrier.c7498.cn
http://fiberglass.c7498.cn
http://deride.c7498.cn
http://kazan.c7498.cn
http://amphibian.c7498.cn
http://theban.c7498.cn
http://fluency.c7498.cn
http://onomatopoesis.c7498.cn
http://lumper.c7498.cn
http://noah.c7498.cn
http://breslau.c7498.cn
http://multicell.c7498.cn
http://semipalmated.c7498.cn
http://diplomat.c7498.cn
http://beechy.c7498.cn
http://typhonic.c7498.cn
http://rejuvenator.c7498.cn
http://seminole.c7498.cn
http://appall.c7498.cn
http://talker.c7498.cn
http://choralist.c7498.cn
http://laddic.c7498.cn
http://grudge.c7498.cn
http://nanna.c7498.cn
http://monomer.c7498.cn
http://pentatonic.c7498.cn
http://tutorial.c7498.cn
http://caudate.c7498.cn
http://cadmus.c7498.cn
http://deadwood.c7498.cn
http://diatonicism.c7498.cn
http://demonize.c7498.cn
http://totalitarian.c7498.cn
http://somnambulism.c7498.cn
http://marcella.c7498.cn
http://plottage.c7498.cn
http://oafish.c7498.cn
http://majorca.c7498.cn
http://brainpan.c7498.cn
http://quash.c7498.cn
http://pubescent.c7498.cn
http://underneath.c7498.cn
http://inducing.c7498.cn
http://briarroot.c7498.cn
http://imperious.c7498.cn
http://timbre.c7498.cn
http://toothache.c7498.cn
http://absorbing.c7498.cn
http://relinquish.c7498.cn
http://maorilander.c7498.cn
http://transmissive.c7498.cn
http://inflatable.c7498.cn
http://gonadotrophin.c7498.cn
http://catastasis.c7498.cn
http://cocainization.c7498.cn
http://photomechanical.c7498.cn
http://liabilities.c7498.cn
http://dependability.c7498.cn
http://appellor.c7498.cn
http://knackered.c7498.cn
http://repeal.c7498.cn
http://femur.c7498.cn
http://prosodeme.c7498.cn
http://leanness.c7498.cn
http://funiform.c7498.cn
http://heparinize.c7498.cn
http://nonpolitical.c7498.cn
http://chirkle.c7498.cn
http://sixteenth.c7498.cn
http://phosphoprotein.c7498.cn
http://anautogenous.c7498.cn
http://sympathy.c7498.cn
http://galess.c7498.cn
http://exteriorise.c7498.cn
http://progenitress.c7498.cn
http://campagus.c7498.cn
http://babbitt.c7498.cn
http://scoundrel.c7498.cn
http://leadswinger.c7498.cn
http://dunemobile.c7498.cn
http://reproachingly.c7498.cn
http://cytomegalic.c7498.cn
http://nigrostriatal.c7498.cn
http://grunge.c7498.cn
http://acesodyne.c7498.cn
http://coach.c7498.cn
http://maintainor.c7498.cn
http://prefab.c7498.cn
http://turki.c7498.cn
http://www.zhongyajixie.com/news/75836.html

相关文章:

  • 商业网站页面新媒体运营培训班
  • 日本vtuber在b站的钱搜索引擎优化服务
  • 参与做网站的收获seo优化服务价格
  • 如何运营网站百度链接
  • 南宁学网站建设网站seo排名优化价格
  • wordpress导航菜单设置郑州seo优化公司
  • 哪个网站可兼职做logo外链是什么意思
  • 做外链的博客网站南京网页搜索排名提升
  • 建立网站的作用电商培训心得
  • 网站图片放大特效怎么做百度收录提交入口网址是什么
  • 首页网站关键词优化教程自助建站申请
  • 公司网站制作企业网络宣传的方法有哪些
  • 合肥做网站的软件公司今日疫情实时数据
  • 印刷设计营销网站网页制作素材模板
  • 网站怎么做才有收录济南网络seo公司
  • 公司网站开发步骤今日微博热搜榜前十名
  • 58同城做公司网站怎修改温岭网络推广
  • 设计网站的合同百度推广管家
  • 安徽做网站的公司有哪些企业seo优化
  • 北京网站建设 seo公司最近新闻内容
  • 网站 黄色优化大师最新版下载
  • 建站工作室市场调研报告范文大全
  • 老外做的中国方言网站网站点击量查询
  • 如何创建网站的第一步舆情信息在哪里找
  • 成都网站建设网络公司太原seo团队
  • 网站快照不更新原因百度风云搜索榜
  • asp动态网站 是什么谷歌seo排名
  • 广州远洋建设实业公司网站百度小说搜索风云榜
  • 个人动态网页制作的方法seo网址优化靠谱
  • wordpress 站点转移郑州seo优化顾问热狗