摘要:
在 JavaScript 和 TypeScript 中,控制流程是指程序执行的顺序和条件判断。以下是一些常见的控制流程结构,包括条件语句、循环语句和函数调用等。
1. 条件语句:
if 语句
let condition = true;if (condition) {console.log('Condition is true');
} else {console.log('Condition is false');
}
switch 语句
let value = 2;switch (value) {case 1:console.log('Value is 1');break;case 2:console.log('Value is 2');break;default:console.log('Value is not 1 or 2');
}
2. 循环语句:
for 循环
for (let i = 0; i < 5; i++) {console.log(i);
}
while 循环
let i = 0;
while (i < 5) {console.log(i);i++;
}
do…while 循环
let i = 0;
do {console.log(i);i++;
} while (i < 5);
for…of 循环
let array = [1, 2, 3, 4, 5];
for (let item of array) {console.log(item);
}
for…in 循环
let obj = { a: 1, b: 2, c: 3 };
for (let key in obj) {console.log(key, obj[key]);
}
3. 函数调用:
声明函数
function greet(name) {console.log(`Hello, ${name}!`);
}greet('Alice');
箭头函数
const greet = (name) => {console.log(`Hello, ${name}!`);
};greet('Alice');
4. 异步控制流程:
Promise
let promise = new Promise((resolve, reject) => {setTimeout(() => {resolve('Success');}, 1000);
});promise.then((result) => {console.log(result);
}).catch((error) => {console.error(error);
});
async/await
async function fetchData() {try {let response = await fetch('https://api.example.com/data');let data = await response.json();console.log(data);} catch (error) {console.error(error);}
}fetchData();
5. 类和对象:
类
class Person {name: string;age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}greet() {console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);}
}let person = new Person('Alice', 30);
person.greet();
对象字面量
let person = {name: 'Alice',age: 30,greet: function() {console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);}
};person.greet();
6. 错误处理:
try…catch
try {// 可能会抛出错误的代码throw new Error('Something went wrong');
} catch (error) {console.error(error.message);
} finally {console.log('This will always run');
}
7. 条件运算符:
三元运算符
let age = 20;
let message = age >= 18 ? 'Adult' : 'Minor';
console.log(message);
8. 数组和对象的方法:
数组方法
let array = [1, 2, 3, 4, 5];array.forEach((item) => {console.log(item);
});let filteredArray = array.filter((item) => item > 2);
console.log(filteredArray);let mappedArray = array.map((item) => item * 2);
console.log(mappedArray);let reducedValue = array.reduce((acc, item) => acc + item, 0);
console.log(reducedValue);
对象方法
let obj = { a: 1, b: 2, c: 3 };Object.keys(obj).forEach((key) => {console.log(key, obj[key]);
});Object.values(obj).forEach((value) => {console.log(value);
});Object.entries(obj).forEach(([key, value]) => {console.log(key, value);
});
9. 总结:
- 条件语句:用于根据条件执行不同的代码块。
- 循环语句:用于重复执行一段代码。
- 函数调用:用于封装和重用代码。
- 异步控制流程:用于处理异步操作。
- 类和对象:用于组织和管理复杂的数据结构。
- 错误处理:用于捕获和处理错误。
- 条件运算符:用于简洁地表达条件逻辑。
- 数组和对象的方法:用于操作数组和对象。
这些控制流程结构可以帮助你更有效地管理和控制程序的执行流程。希望这些示例能帮助你更好地理解和使用 JavaScript 和 TypeScript 中的控制流程。