大白话之迭代器(一)

为什么要使用迭代器?

起初我们在遍历数组的时候是使用for(let i =0; i<array.length;i++) ,但是随着语言不断发展,现有的集合(数组,对象)不够用,于是有了新的集合 set,map 既然是集合 我们使用者,经常就会遍历它 .
只要将我们迭代器属性放在集合对象上就可以使用for of ,展开运算符,解构赋值等等一系列操作,当然我们迭代器需要遵循一定的规则:1.起始点2.next方法3.调用next方法的时候返回值的格式{value:‘’,done:boolean}

自定义迭代器

//原本对象中是不存在迭代器属性的,但是只要按照迭代器标准 配置上,就可以使用for of ,展开运算符 ,等等操作
	let person = {
				from: 2,
				to: 5,
				[Symbol.iterator]() {
					return {
						start : this.from,
						end :this.to,
						next() {
							if (this.start <this.end+1) {
								let result;
								result =  {
									value: this.start,
									done: false
								}
								this.start++;
								return result;
							} else {
								return {
									value: undefined,
									done: true
								}
							}
						}
					}
		
				}
				}
				// [2,3,4,5]
				[...person] 
				//
				for(let item of person){
                   console.log(item)
                }

内置迭代器

String、Array、TypedArray、Map 和 Set 都是内置可迭代对象,因为它们的原型对象都拥有一个 Symbol.iterator 方法。

Array.prototype[System.iterator]

显示调用迭代器

 let str = '永不言弃!'
 let iterator = str[Symbol.iterator]()
 while(true){
    let result = iterator.next();
    if(result.done) break;
    alert(result.value)
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嗨!大白话讲解Promise(一)啊!好的,我来给你解释一下。 首先,我们要知道Promise是JavaScript中处理异步操作的一种方式。异步操作就是那些不会立即返回结果的操作,比如从服务器上获取数据或者执行耗时的任务。在以前,我们通常使用回调函数来处理异步操作,但是回调函数的嵌套会导致代码变得难以阅读和维护。而Promise就是为了解决这个问题而出现的。 Promise可以被看作是一种代表了未来结果的对象。它有三个状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。当一个异步操作开始执行时,它的状态是pending;当操作成功完成时,它的状态变为fulfilled,并且会返回一个值;当操作失败时,它的状态变为rejected,并且会返回一个错误。 使用Promise的好处是可以更清晰地编写异步代码。我们可以通过调用Promise的then()方法来处理成功的情况,通过调用catch()方法来处理失败的情况。这样就避免了回调函数的嵌套,代码更加易读和易于维护。 当我们创建一个Promise对象时,我们需要传入一个执行器函数,这个函数会立即执行。执行器函数接受两个参数:resolve和reject。在执行器函数中,我们可以执行异步操作,并在合适的时候调用resolve或reject来改变Promise的状态。 我来举个例子来说明一下: ```javascript const promise = new Promise((resolve, reject) => { // 这里可以执行异步操作 // 如果操作成功,调用resolve并传入结果 // 如果操作失败,调用reject并传入错误 }); promise.then((result) => { // 处理操作成功的情况 }).catch((error) => { // 处理操作失败的情况 }); ``` 这就是Promise的简单介绍,望能帮到你!如果你还有其他问题,尽管问吧!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值