JavaScript迭代器遍历为什么不能用while循环

今天学到JS迭代器时发现迭代器只能用for循环遍历,如下:

let iterator = set.keys();
for(let i=0;i<set.size;i++) {
    
    
	document.write(iterator.next().value);
}

如果使用while循环遍历的话,网页就会一直加载不出来,这是为什么呢?
一直加载不出来我们就会自然想到死循环。产生死循环无非就是判断条件永远为true;
我们首先看一下上面代码的执行结果:
在这里插入图片描述
这是我添加的四个元素。然后接下来我们我们把for循环的长度加一,看看迭代器中没有元素时返回的是什么值。得到以下结果:
在这里插入图片描述
可以看到返回的是undefined而不是false。这里要注意undefined是js的一种原始数据类型。

原始数据类型

数据类型 说明
boolean 布尔类型
null 声明null值的特殊关键字
undefined 代表变量未定义
number 整数或浮点数
string 字符串
bigint 大整数,例如lert n = 10n;

猜你喜欢

转载自blog.csdn.net/m0_45972156/article/details/119009380