for语句大概

简简单单的for语句

    for语句也是先测试语句,只不过增加了进入循坏之前的初始化代码,以及循环执行后要执行的表达式,语法如下:
    for (initialization; expression; post-loop-expression)  statement

下面是一个用例:

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循环的初始化代码中,其实是可以不使用变量声明关键字的。不过,初始化定义的迭代器变量在循坏执行完成几乎不可能再用到了,因此,最清晰的写法是使用let声明迭代器变量,这样就可以将这个 变量的作用域限定在循坏中。

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

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

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

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

这种多功能性使得for语句在这语言中使用非常广泛

for-in语句

for-in语句是一种严格的迭代语句,用于枚举对象中的非符号键属性:语法如下:
for (property in expression) statement

下面是一个例子:

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

这个例子使用 for-in循坏显示了 BOM 对象 window 的所有属性。每次执行循坏,都会个变量 propName赋予一个window对象的属性作为值,直到 window的所有属性都会被枚举一遍。与for循环一样,这里的控制语句中的const也不是必需的,但是为了确保这个局部变量不会被修改,推荐使用const。
ECMAScript中对象的属性是无序的,因此for-in语句不能保证返回对象属性的顺序。换句话说,所有可枚举的属性都会返回一次,但是返回的顺序可能会因为浏览器而异。
如果for-in循坏要迭代的变量是null或者undefined,则不执行循坏体。

for-of语句

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

for (pooperty of expression) statement

下面是示例:

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

在这个例字中,我们使用for-of语句显示了一个包含4个元素的数组中的所有元素。循坏会一直持续到所有元素都迭代完成,与for循坏一样,这里的控制语句中的count 也不是必需的。但是为了确保这个局部变量不会被修改,推荐使用const。
for-of循坏会按照可迭代对象的next()方法产生值得顺序迭代元素。
如果尝试迭代的变量不支持迭代,则for-of语句会抛出错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值