4-7 JS语法(while循环、for循环、break和continue、label标签)

while循环

1.语法
当…时

  • while(表达式){ 语句 }
  • 判断表达式的真假
  • 当表达式为真,执行语句
  • 当表达式为假,执行后面的语句
  • 执行完再次判断表达式的真假
    在这里插入图片描述
    2.奇怪的例子
    死循环案例:
    当 a 不等于 1 时,打印出 a,且 a = a+1
    死循环原因:浮点数不精确
var a = 0.1
while(a !== 1){
    console.log(a)
    a = a + 0.1
}

在这里插入图片描述

for循环

1.语法糖

  • for 是 while 循环的方便写法
  • 方便的地方:
    while的几个部分少一个都不行
var a = 0.1 //初始化
while(a !== 1){  //判断
    console.log(a)  //循环体
    a = a + 0.1  //增长
}

2.语法

  • 结构
for(语句1;表达式2;语句3){//初始化;判断;增长
  循环体
}
  • 先执行一次语句1
  • 然后判断表达式2
  • 如果为真,执行循环体,然后执行语句3(注意先后顺序)
  • 如果为假,直接退出循环,执行后面的语句

3.重要的栗子
例子1:
在这里插入图片描述
例子2

for(let i= 0; i<5;i++){
setTimeout(()=>{console.log(i)})
}

2.1为什么运行结果会有5个5?
答:

  • setTimeout表示过一会执行,虽然跳过了这一句,但后面一定会执行,这里 i 从 0-4一共5次,因此是5个
  • “过一会”表示把循环执行完了之后执行,则当循环执行完时,i=5
  • 因此是5个5
    在这里插入图片描述
    2.2 如何解决这个问题,正常打印出 ·0,1,2,3,4
    答:把var改成let,是JS为了满足一些程序员的思想,单独开辟的运行理念
    在这里插入图片描述

break和continue

退出当前所有循环 V.S. 退出当前一次循环

  • break退出整个循环,但只会退出离它最近的一个for

在这里插入图片描述
在这里插入图片描述

label标签

foo: { //foo是一个标签,表示这个代码块
  console.log(1);
  break foo;//跳出foo这个代码块
  console.log('本行不会输出');//上面就已经退出了
}
console.log(2);

最终会输出;1 2

{
foo: 1;
}

表示一个代码块,代码块里面有一个标签,标签label的内容是1,这不是一个对象

var a = {
  foo: 1;
}

这是一个对象

推荐书籍:你不知道的JavaScript

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值