当前位置: 首页 > news >正文

前端面试三之控制语句

1.for-in

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

(1)遍历对象属性

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)遍历数组

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

(2)遍历字符串 

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

(3)结合解构赋值 

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

3.try-catch

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

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

(1)基本错误捕获

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

(2)使用 finally 块

let file = openFile();
try {processFile(file);
} catch (error) {console.error('文件处理失败:', error);
} finally {closeFile(file); // 确保文件总是被关闭
}

http://www.lqws.cn/news/120133.html

相关文章:

  • Linux kill 暂停命令
  • vue3+elementplus表格表头加图标及文字提示
  • Starrocks中RoaringBitmap杂谈
  • Spring Boot MVC自动配置与Web应用开发详解
  • 低代码采购系统搭建:鲸采云+能源行业订单管理自动化案例
  • 国产三维CAD皇冠CAD在「金属压力容器制造」建模教程:蒸汽锅炉
  • setting up Activiti BPMN Workflow Engine with Spring Boot
  • 一起学Spring AI:核心概念
  • 沉金PCB电路板制造有哪些操作要点需要注意?
  • 中小制造企业转型:低成本国产工业软件替代方案实践
  • 力扣刷题Day 70:在排序数组中查找元素的第一个和最后一个位置(34)
  • 如何借助Hyper - V在Windows 10中构建安全软件测试环境
  • parquet :开源的列式存储文件格式
  • [蓝桥杯]密文搜索
  • ios版本的Tiktok二次安装不上,提示:Unable to Install “TikTok”
  • AI 时代下语音与视频伪造的网络安全危机
  • vue-16(Vuex 中的模块)
  • Python 中 Django 中间件:原理、方法与实战应用
  • stm32——UART和USART
  • Mac/iOS 如何解压 RAR 格式压缩包:常用工具与详细操作步骤
  • [Java 基础]抽象类和接口
  • SSM spring Bean基础配置
  • C++课设:银行账户管理系统
  • SAP学习笔记 - 开发22 - 前端Fiori开发 数据绑定(Jason),Data Types(数据类型)
  • VSCode 工作区配置文件通用模板(CMake + Ninja + MinGW/GCC 编译器 的 C++ 或 Qt 项目)
  • 【免费数据】1980-2022年中国2384个站点的水质数据
  • Monorepo架构: 项目管理模式对比与考量
  • 学习笔记(23): 机器学习之数据预处理Pandas和转换成张量格式[1]
  • Java设计模式深度解析:策略模式的核心原理与实战应用
  • 网页前端开发(基础进阶3--Vue)