前端面试三之控制语句

1.for-in

for...in 是 JavaScript 中用于遍历对象可枚举属性的循环语句。它主要用于遍历对象的属性名(键),而不是属性值。

(1)遍历对象属性

javascript 复制代码
const person = {
  name: 'Alice',
  age: 25,
  job: 'Developer'
};

for (const key in person) {
  console.log(`${key}: ${person[key]}`);
}
// 输出:
// name: Alice
// age: 25
// job: Developer

2.for-of

for...of 是 ES6 (ECMAScript 2015) 引入的循环语句,用于遍历可迭代对象 (如数组、字符串、Map、Set 等)的元素值。for...of 是现代 JavaScript 中遍历集合数据的首选方式,提供了更简洁、更直观的语法,特别适合处理数组和其他可迭代对象。

(1)遍历数组

javascript 复制代码
const fruits = ['apple', 'banana', 'orange'];

for (const fruit of fruits) {
  console.log(fruit);
}
// 输出:
// apple
// banana
// orange

(2)遍历字符串

javascript 复制代码
const str = 'hello';

for (const char of str) {
  console.log(char);
}
// 输出:
// h
// e
// l
// l
// o

(3)结合解构赋值

javascript 复制代码
const users = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 }
];

for (const { name, age } of users) {
  console.log(`${name} is ${age} years old`);
}

(4)与 for...in 的区别

特性 for...of for...in
用途 遍历可迭代对象的值 遍历对象属性名
获取内容 属性值 属性名(键)
原型链属性 不涉及原型链 会遍历继承的可枚举属性
数组使用 只遍历数字索引元素 遍历所有可枚举属性(包括非数字键)
适用对象 可迭代对象(Array, Map, Set等) 任意对象

3.try-catch

try-catch 是 JavaScript 中处理运行时错误的异常处理机制,允许你"尝试"执行可能出错的代码,并"捕获"处理可能发生的异常,防止程序意外终止。

javascript 复制代码
try {
  // 可能抛出错误的代码
} catch (error) {
  // 错误处理代码
} finally {
  // 无论是否出错都会执行的代码
}

(1)基本错误捕获

javascript 复制代码
try {
  console.log(notDefined); // 引用未定义变量
} catch (error) {
  console.error('发生错误:', error.message);
  // 输出: "发生错误: notDefined is not defined"
}

(2)使用 finally

javascript 复制代码
let file = openFile();
try {
  processFile(file);
} catch (error) {
  console.error('文件处理失败:', error);
} finally {
  closeFile(file); // 确保文件总是被关闭
}
相关推荐
带娃的IT创业者2 小时前
TypeScript + React + Ant Design 前端架构入门:搭建一个 Flask 个人博客前端
前端·react.js·typescript
非凡ghost3 小时前
MPC-BE视频播放器(强大视频播放器) 中文绿色版
前端·windows·音视频·软件需求
Stanford_11064 小时前
React前端框架有哪些?
前端·微信小程序·前端框架·微信公众平台·twitter·微信开放平台
洛可可白4 小时前
把 Vue2 项目“黑盒”嵌进 Vue3:qiankun 微前端实战笔记
前端·vue.js·笔记
学习同学5 小时前
从0到1制作一个go语言游戏服务器(二)web服务搭建
服务器·前端·golang
-D调定义之崽崽5 小时前
【初学】调试 MCP Server
前端·mcp
四月_h5 小时前
vue2动态实现多Y轴echarts图表,及节点点击事件
前端·javascript·vue.js·echarts
文心快码BaiduComate5 小时前
用Zulu轻松搭建国庆旅行4行诗网站
前端·javascript·后端
行者..................7 小时前
手动编译 OpenCV 4.1.0 源码,生成 ARM64 动态库 (.so),然后在 Petalinux 中打包使用。
前端·webpack·node.js
小爱同学_7 小时前
一次面试让我重新认识了 Cursor
前端·面试·程序员