美文网首页
3.6.4 for 语句、for-in 语句、3.6.6 f

3.6.4 for 语句、for-in 语句、3.6.6 f

作者: Wuthier | 来源:发表于2021-04-21 09:06 被阅读0次
    3.6.4 for 语句

    for 语句也是先测试语句,只不过增加了进入循环之前的初始化代码,以及循环执行后要执行的表
    达式。

    let count = 10;
    for (let i = 0; i < count; i++) {
        console.log(i);
    }
    

    以上代码在循环开始前定义了变量 i 的初始值为 0。然后求值条件表达式,如果求值结果为 true
    ( i < count ),则执行循环体。因此循环体也可能不会被执行。如果循环体被执行了,则循环后表达式也会执行,以便递增变量 i 。

    for 循环跟下面的 while 循环是一样的:

    let count = 10;
    let i = 0;
    while (i < count) {
        console.log(i);
        i++;
    }
    

    无法通过 while 循环实现的逻辑,同样也无法使用 for 循环实现。因此 for 循环只是将循环相关
    的代码封装在了一起而已。

    初始化、条件表达式和循环后表达式都不是必需的。因此,下面这种写法可以创建一个无穷循环:

    for (;;) { // 无穷循环
        doSomething();
    }
    

    如果只包含条件表达式,那么 for 循环实际上就变成了 while 循环:

    let count = 10;
    let i = 0;
    for (; i < count; ) {
        console.log(i);
        i++;
    }
    
    3.6.5 for-in 语句

    for-in 语句是一种严格的迭代语句,用于枚举对象中的非符号键属性。

    for (const propName in window) {
        document.write(propName);
    }
    

    使用 for-in 显示了BOM对象window的所有属性。
    每次执行循环,都会给变量 propName 赋予一个window对象的属性作为值,知道window的所有属性都被枚举一遍。
    与for循环一样,控制语句中的const也不是必需的。为了保证这个局部变量不被修改,推荐使用const。

    ECMAScript中对象的属性是无序的,因此for-in语句不能保证返回对象属性的顺序。

    所有可枚举的属性都会返回一次,返回的顺序可能会因浏览器而异。

    如果for-in循环要迭代的变量是null或undefined,则不执行循环体。

    3.6.6 for-of 语句

    for-of语句是一种严格的迭代语句,用于遍历可迭代对象的元素。

    for (const el of [2,4,6,8]) {
        document.write(el);
    }
    

    使用 for-of 语句显示了一个包含4个元素的数组中的所有元素。循环会一直持续到将所有元素都迭代完。
    与for循环一样,控制语句中的const也不是必需的。为了确保这个局部变量不被修改,推荐使用const。

    for-of循环会按照可迭代对象的next()方法产生值的顺序迭代元素。

    如果尝试迭代的变量不支持迭代,则for-of语句会抛出错误。

    学习下一篇文章

    相关文章

      网友评论

          本文标题:3.6.4 for 语句、for-in 语句、3.6.6 f

          本文链接:https://www.haomeiwen.com/subject/otaglltx.html