2024-12-2 日报 Day23

2024-12-2 日报 Day23

Yuyang 前端小白🥬

今日的鸡汤

人生,从外打破是压力,从内打破是成长。

今日学习内容

1、JS红皮书P73-76 第三章:语言基础

今日笔记

1、if语句:if (condition) statement1 else statement2
这里的条件(condition)可以是任何表达式,并且求值结果不一定是布尔值。ECMAScript 会自动调用 Boolean()函数将这个表达式的值转换为布尔值。如果条件求值为 true,则执行语句statement1;如果条件求值为 false,则执行语句 statement2。这里的语句可能是一行代码,也可能是一个代码块(即包含在一对花括号中的多行代码)。来看下面的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (i > 25) 
console.log("Greater than 25."); // 只有一行代码的语句
else {
console.log("Less than or equal to 25."); // 一个语句块
}
// 可以像这样连续使用多个 if 语句:
// if (condition1) statement1 else if (condition2) statement2 else statement3
// 下面是一个例子:
if (i > 25) {
console.log("Greater than 25.");
} else if (i < 0) {
console.log("Less than 0.");
} else {
console.log("Between 0 and 25, inclusive.");
}

2、do-while 语句:do-while 语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试条件。因此,循环体内的代码至少会执行一次。do-while 语句的语法如下:
do {
statement
} while (condition);

1
2
3
4
let i = 0; 
do {
i += 2;
} while (i < 10);

3、while 语句:while 语句是一种先测试循环语句,即在循环体内的代码被执行之前,就会先测试条件。如果条件为 true,则继续执行循环;如果条件为 false,则不执行循环。while 语句的语法如下:
while (condition) {
statement
}

1
2
3
4
let i = 0;
while (i < 10) {
i += 2;
}

4、for 语句:for 语句是一种前测试循环语句,即在循环体内的代码被执行之前,就会先测试条件。如果条件为 true,则继续执行循环;如果条件为 false,则不执行循环。for 语句的语法如下:
for (initialization; condition; post-loop-expression) {
statement
}

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

5、for-in 语句:for-in 语句是一种精准的迭代语句,可以用来枚举对象的属性。for-in 语句的语法如下:
for (property in expression) {
statement
}

1
2
3
for (let propName in window) { 
console.log(propName);
}

6、for-of 语句:for-of 语句是一种精准的迭代语句,可以用来遍历可迭代对象的元素。for-of 语句的语法如下:
for (variable of expression) {
statement
}

1
2
3
4
let data = [1, 2, 3, 4, 5];
for (let i of data) {
console.log(i);
}

7、for-of和for-in的区别:

  • for-in 循环用来枚举对象的属性,包括原型链上的属性。
  • for-of 循环用来遍历可迭代对象的元素,包括数组、字符串、Map 和 Set 等。
    8、标签语句
    标签语句是一种标识语句的方法,可以在代码中添加标签,以便将来引用。标签语句的语法如下:
    label: statement
    1
    2
    3
    start: for (let i = 0; i < count; i++) { 
    console.log(i);
    }
    在 JavaScript 中,标签语句(Labeled Statement) 是一种给语句打上标签的语法结构,常用于配合 break 或 continue,跳出多层循环或控制流程。

✅ 语法:

labelName:
statement


🚩 使用场景:
多层嵌套循环中提前跳出某一层外部循环,这时候普通的 break 只能跳出一层,用标签可以指定跳出哪一层。

🧪 举个例子:
🚫 普通 break 只能跳出一层:
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) break;
console.log(i=${i}, j=${j});
}
}
// 输出:i=0,j=0 → i=0,j=1 → i=0,j=2 → i=1,j=0 → i=1,j=2 还继续了

✅ 用标签配合 break:
outerLoop: // 给外层循环打标签
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) break outerLoop;
console.log(i=${i}, j=${j});
}
}
// 输出:i=0,j=0 → i=0,j=1 → i=0,j=2 → i=1,j=0(然后 break 了整个外层)

✅ continue 也可以配合标签使用:
outer:
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (j === 1) continue outer;
console.log(i=${i}, j=${j});
}
}
// j=1 时直接跳到下一轮外层 i++

⚠️ 注意事项:
• 标签不能重复定义。
• 标签 只能配合 break 或 continue 使用,不能像 goto 那样任意跳转。
• 使用频率不高,但在复杂嵌套逻辑中可以提升可读性或性能。

此页目录
2024-12-2 日报 Day23