es6面试常见问题╮(╯▽╰)╭
ES6(ECMAScript 2015)的一些常见面试问题,涵盖了变量声明、箭头函数、模板字符串、解构赋值、模块化、类、Promise、生成器等关键特性。有些面试就是问问,对老程序员面试其实不问这么多╮(╯▽╰)╭
文章目录
- **1. 变量声明**
- **1.1 `let` 和 `const` 与 `var` 的区别是什么?**
- **1.2 什么是变量提升(hoisting)?**
- **2. 箭头函数**
- **2.1 什么是箭头函数?箭头函数与普通函数有什么区别?**
- **2.2 箭头函数中的 `this` 是如何工作的?**
- **3. 模板字符串**
- **3.1 什么是模板字符串?模板字符串与普通字符串有什么区别?**
- **4. 解构赋值**
- **4.1 什么是解构赋值?解构赋值有哪些用途?**
- **4.2 如何使用默认值进行解构赋值?**
- **5. 模块化**
- **5.1 什么是模块化?ES6 模块化有哪些关键字?**
- **5.2 如何导出和导入默认导出与命名导出?**
- **6. 类**
- **6.1 什么是类?ES6 中如何定义类?**
- **6.2 类中的继承是如何实现的?**
- **7. Promise**
- **7.1 什么是 Promise?Promise 的状态有哪些?**
- **7.2 如何使用 Promise?Promise 链是如何工作的?**
- **8. 生成器**
- **8.1 什么是生成器?生成器函数与普通函数有什么区别?**
- **9. 剩余参数和扩展运算符**
- **9.1 什么是剩余参数(rest parameters)?**
- **9.2 什么是扩展运算符(spread operator)?**
- **10. 对象字面量增强**
- **10.1 什么是对象字面量增强?对象字面量增强有哪些特性?**
- **11. Set 和 Map**
- **11.1 什么是 Set?Set 与数组有什么区别?**
- **11.2 什么是 Map?Map 与对象有什么区别?**
- **12. 异步编程**
- **12.1 什么是 async/await?async/await 与 Promise 有什么关系?**
- **13. Proxy**
- **13.1 什么是 Proxy?Proxy 有哪些用途?**
- **14. Symbol**
- **14.1 什么是 Symbol?Symbol 有哪些用途?**
1. 变量声明
1.1 let
和 const
与 var
的区别是什么?
- 回答:
var
:- 函数作用域或全局作用域。
- 可以重新声明和重新赋值。
- 存在变量提升(hoisting)。
let
:- 块级作用域(
{}
内)。 - 可以重新赋值,但不能重新声明。
- 存在暂时性死区(temporal dead zone)。
- 块级作用域(
const
:- 块级作用域。
- 不能重新声明和重新赋值(对于基本类型),但可以修改对象和数组的属性。
- 存在暂时性死区。
1.2 什么是变量提升(hoisting)?
- 回答:
- 变量提升是指变量和函数声明在代码执行前被移动到作用域的顶部。
var
声明会被提升,但赋值不会。let
和const
声明也会被提升,但在声明之前访问会导致ReferenceError
。
2. 箭头函数
2.1 什么是箭头函数?箭头函数与普通函数有什么区别?
- 回答:
- 箭头函数:使用箭头
=>
定义的函数。const add = (a, b) => a + b;
- 区别:
- 语法更简洁。
- 没有自己的
this
绑定:箭头函数继承自父作用域的this
。 - 没有
arguments
对象:箭头函数没有arguments
对象,可以使用剩余参数(rest parameters)。 - 不能用作构造函数:不能使用
new
关键字。 - 没有
prototype
属性。
- 箭头函数:使用箭头
2.2 箭头函数中的 this
是如何工作的?
- 回答:
- 箭头函数没有自己的
this
绑定,它继承自父作用域的this
。
const obj = {name: 'Alice',greet: function() {setTimeout(() => {console.log(`Hello, ${this.name}`);}, 1000);} };obj.greet(); // 输出: Hello, Alice
- 箭头函数没有自己的
3. 模板字符串
3.1 什么是模板字符串?模板字符串与普通字符串有什么区别?
- 回答:
- 模板字符串:使用反引号(
`
)定义的字符串,支持内嵌表达式。const name = 'Alice'; const greeting = `Hello, ${name}!`;
- 区别:
- 支持多行字符串:可以包含换行符。
- 支持内嵌表达式:使用
${expression}
语法。 - 更好的可读性:适合构建复杂的字符串。
- 模板字符串:使用反引号(
4. 解构赋值
4.1 什么是解构赋值?解构赋值有哪些用途?
- 回答:
- 解构赋值:从数组或对象中提取数据并赋值给变量。
const [a, b] = [1, 2]; const { name, age } = { name: 'Alice', age: 25 };
- 用途:
- 数组解构:从数组中提取元素。
- 对象解构:从对象中提取属性。
- 函数参数解构:在函数参数中使用解构。
- 解构赋值:从数组或对象中提取数据并赋值给变量。
4.2 如何使用默认值进行解构赋值?
- 回答:
- 可以为解构赋值提供默认值。
const [a = 1, b = 2] = [5]; console.log(a, b); // 输出: 5 2const { name = 'Guest', age = 18 } = {}; console.log(name, age); // 输出: Guest 18
- 可以为解构赋值提供默认值。
5. 模块化
5.1 什么是模块化?ES6 模块化有哪些关键字?
- 回答:
- 模块化:将代码分割成独立的模块,便于管理和复用。
- 关键字:
export
:导出模块内容。<
相关文章:
es6面试常见问题╮(╯▽╰)╭
ES6(ECMAScript 2015)的一些常见面试问题,涵盖了变量声明、箭头函数、模板字符串、解构赋值、模块化、类、Promise、生成器等关键特性。有些面试就是问问,对老程序员面试其实不问这么多╮(╯▽╰)╭ 文章目录 **1. 变量声明****1.1 `let` 和 `const` 与 `var` 的区别是什么…...
Xenomai 如何实现 <10μs 级抖动控制
1. 抖动(Jitter)的定义与重要性 1.1 什么是抖动? 在实时控制系统中,抖动(Jitter)指任务实际执行时间与预期周期时间的偏差。例如: • 设定一个任务每 100μs 运行一次,但实际运行时间…...
前端基础常见的算法
你整理的这些前端常见算法知识点挺实用的,适合复习或面试准备。下面我帮你稍微整理美化一下格式,并补充一点细节,让内容更清晰易读: 1. 排序算法 冒泡排序(Bubble Sort) 原理:通过重复比较相邻元…...
RPA机器人技术原理初探
RPA(Robotic Process Automation,机器人流程自动化)通过模拟人类操作界面元素来实现自动化任务,其技术原理可分为以下核心模块: 一、基础技术架构 界面元素识别技术 选择器(Selector)引擎&#…...
AWS CloudFront加速S3配置跨域
1、点击分配 源我们就选择S3–>选择我们要加速的S3存储桶 2、创建OAC访问方式 在我们的来源访问处–>来源访问控制设置(推荐)–>选择创建新的OAC(Create new OAC)–>自定义名字按默认选项保存–>选择刚刚新创建的OAC 3、选择查看器的配置 根据具体情况&#x…...
58.最后一个单词的长度
目录 一、问题描述 二、解题思路 三、代码 四、复杂度分析 一、问题描述 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 二、解题思…...
leetcode_344.反转字符串_java
344. 反转字符串 1、题目 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:…...
Android --- FrameWork 入门:极速上手AOSP
文章目录 一、硬件要求二、虚拟机安装三、开发环境搭建四、下载编译源码 一、硬件要求 CPU不低于6核心,建议8核及以上 内存不低于32G,建议64G 存储空间不低于500G,建议 1TB SSD 二、虚拟机安装 1.下载ubuntu,官网网址如下: releases.ubuntu.com/focal…...
“大湾区珠宝艺境花园”璀璨绽放第五届消博会
2025年4月13日,第五届中国国际消费品博览会(以下简称"消博会")重要主题活动——《大湾区珠宝艺境花园》启动仪式在海南国际会展中心2号馆隆重举行。由广东省金银珠宝玉器业厂商会组织带领粤港澳大湾区优秀珠宝品牌,以“…...
Spring Boot系列之使用Arthas Tunnel Server 进行远程调试实践
Spring Boot系列之使用Arthas Tunnel Server 进行远程调试实践 前言 在开发和运维 Java 应用的过程中,远程诊断和调试是一个不可或缺的需求。尤其是当生产环境出现问题时,能够快速定位并解决这些问题至关重要。Arthas 是阿里巴巴开源的一款强大的 Java…...
ILGPU的核心功能使用详解
什么是ILGPU? ILGPU 是一种用于高性能 GPU 程序的新型 JIT(即时)编译器 (也称为 kernels)编写的 .基于 Net 的语言。ILGPU 完全 用 C# 编写,没有任何原生依赖项,允许您编写 GPU 真正可移植的程序。…...
Ubuntu服务器日志满audit:backlog limit exceeded了会报错解决方案-Linux 审计系统 (auditd) 工具
auditd 是 Linux 系统中的审计守护进程,负责收集、记录和监控系统安全相关事件。以下是相关工具及其功能: 核心组件 auditd - 审计守护进程 系统的审计服务主程序 收集系统调用信息并写入日志文件 通常存储在 /var/log/audit/audit.log auditctl - 审计控…...
数据加载与保存
通用方式 SparkSQL提供了通用的数据加载方式,使用spark.read.loa方法,并可通过format指定数据类型(如csv、jdbc、json、orc、parquet、textFile)。 load方法后需传入数据路径(针对csv、jdbc、json、orc、parquet、…...
TODO!! IM项目2
感觉似乎部署好了 真不容易 mysql、redis、 rocketmq(nameserver、broker)、nginx 看代码里是mybatisplus、netty->protobuf协议 现在还发不出去消息 每个密码都要改对 现在可以发消息了但不能at 房间成员也没有 broker内存不够? 从…...
Android ImageView 使用详解
文章目录 一、基本使用1. XML 中声明 ImageView2. Java/Kotlin 中设置图片 二、图片缩放类型 (scaleType)三、加载网络图片1. 使用 Glide (推荐)2. 使用 Picasso 四、高级功能1. 圆形图片2. 圆角图片3. 图片点击缩放动画 五、性能优化六、常见问题解决 ImageView 是 Android 中…...
工资管理系统的主要功能有哪些
工资管理系统通过自动化薪资计算、税务处理、员工数据管理、报表生成等功能,极大地提升了薪资发放的效率和准确性。在传统的人工薪资管理中,HR人员需要手动计算每位员工的薪资,并确保符合税务要求,极易出错且耗时。而现代工资管理…...
WordPiece 详解与示例
WordPiece详解 1. 定义与背景 WordPiece 是一种子词分词算法,由谷歌于2012年提出,最初用于语音搜索系统,后广泛应用于机器翻译和BERT等预训练模型。其核心思想是将单词拆分为更小的子词单元(如词根、前缀/后缀),从而解决传统分词方法面临的词汇表过大和未知词(OOV)处…...
【LeetCode基础算法】滑动窗口与双指针
定长滑动窗口 总结:入-更新-出。 入:下标为 i 的元素进入窗口,更新相关统计量。如果 i<k−1 则重复第一步。 更新:更新答案。一般是更新最大值/最小值。 出:下标为 i−k1 的元素离开窗口,更新相关统计量…...
日本Shopify 3月数据:家居品类销售额激增120%!
2024年第一季度末,电商平台运营商Shopify发布了3月份的最新销售数据,引发业界高度关注。据最新数据显示,日本市场家居品类销售在3月份实现了惊人的增长,同比激增120%,成为该区域增速最快的类目。这一变化不仅映射出日本…...
C语言多进程素数计算
题目描述: 以下代码实现了一个多进程素数计算程序,通过fork()函数创建子进程来并行计算指定范围内的素数。请仔细阅读代码并回答以下问题。 #include "stdio.h" #include "unistd.h" #include <sys/types.h> #include "…...
链表知识回顾
类型:单链表,双链表、循环链表 存储:在内存中不是连续存储 删除操作:即让c的指针指向e即可,无需释放d,因为java中又内存回收机制 添加节点: 链表的构造函数 public class ListNode {// 结点…...
数据库勒索病毒威胁升级:企业数据安全防线如何用安当RDM组件重构
摘要:2025年Q1全球数据库勒索攻击量同比激增101.8%,Cl0p、Akira等团伙通过边缘设备漏洞渗透企业核心系统,制造业、金融业等关键领域面临数据加密与业务停摆双重危机。本文深度解析勒索病毒对数据库的五大毁灭性影响,结合安当RDM防…...
50%时效提升!中巴新航线如何重构ebay跨境电商物流成本?
50%时效提升!中巴新航线如何重构eBay跨境电商物流成本? 近年,拉美市场逐步升温,特别是巴西,已成为中国跨境卖家争相布局的新蓝海市场。而随着eBay大力拓展拉美板块,更多卖家开始将目光投向这个人口超2亿、…...
自建 eSIM RSP 服务指南
一、 自建 eSIM RSP 服务的必要性评估 在决定是否自建 RSP(远程 SIM 配置)服务时,企业需要全面了解其带来的利弊。以下是核心要点: 1. GSMA 安全认证 (SAS-SM) 的重要性 目的: 确保 RSP 服务符合全球移动网络运营商 (MNO) 对安…...
TensorRT模型部署剪枝
TensorRT模型部署剪枝 本文属于学习笔记,在重点章节或代码位置加入个人理解,欢迎批评指正! 参考: CUDA与TensorRT部署部署实战第四章 一. Pruning 学习目标 理解什么是模型剪枝模型剪枝的分类,以及各类剪枝的利弊都…...
Servlet 线程安全与并发编程深度解析
Servlet 线程安全与并发编程深度解析 一、Servlet 线程安全机制与风险场景 1.1 Servlet 容器工作原理 单实例多线程模型:每个Servlet在容器中只有一个实例,通过线程池处理并发请求请求处理流程: 接收HTTP请求创建HttpServletRequest和HttpS…...
C++学习:六个月从基础到就业——面向对象编程:封装、继承与多态
C学习:六个月从基础到就业——面向对象编程:封装、继承与多态 本文是我C学习之旅系列的第九篇技术文章,主要讨论C中面向对象编程的三大核心特性:封装、继承与多态。这些概念是理解和应用面向对象设计的关键。查看完整系列目录了解…...
光谱相机的成像方式
光谱相机的成像方式决定了其如何获取物体的空间与光谱信息,核心在于分光技术与扫描模式的结合。以下是主要成像方式的分类解析: 一、滤光片切换型 1. 滤光片轮(Filter Wheel) 原理:通过旋转装有多个窄带…...
Excel 中让表格内容自适应列宽和行高
Excel 中让表格内容自适应列宽和行高 目录 Excel 中让表格内容自适应列宽和行高自适应列宽自适应行高在Excel中让表格内容自适应列宽和行高,可参考以下操作: 自适应列宽 方法一:手动调整 选中需要调整列宽的列(如果是整个表格,可点击表格左上角行号和列号交叉处的三角形全…...
android rtsp 拉流h264 h265,解码nv12转码nv21耗时卡顿问题及ffmpeg优化
一、 背景介绍及问题概述 项目需求需要在rk3568开发板上面,通过rtsp协议拉流的形式获取摄像头预览,然后进行人脸识别 姿态识别等后续其它操作。由于rtsp协议一般使用h.264 h265视频编码格式(也叫 AVC 和 HEVC)是不能直接用于后续处…...
Day(21)--网络编程
网络编程 在网络通信协议下,不同计算机上运行的程序,进行的数据传输 应用场景:即使通信、网友对战、金融证券等等,不管是什么场景,都是计算机和计算机之间通过网络进行的数据传输 java.net 常见的软件架构 C/S&am…...
Android主流播放器功能详解
Android主流播放器功能详解 前言 本文将深入介绍Android三大主流播放框架(ijkplayer、ExoPlayer和MediaPlayer)的功能特性和实战应用,帮助你选择合适的播放框架并掌握其使用方法。 三大播放框架概述 播放框架开发方特点适用场景MediaPlayerAndroid官方简单易用,系统内置…...
牟乃夏《ArcGIS Engine地理信息系统开发教程》学习笔记2
目录 一、ArcGIS Engine概述 1、 定义 2、 核心功能 3、 与ArcObjects(AO)的关系 二、开发环境搭建 1、 开发工具要求 2、 关键步骤 三、 ArcGIS Engine核心组件 1、 对象模型 2、 类库分类 四、 第一个AE应用程序(C#示例…...
语音合成(TTS)从零搭建一个完整的TTS系统-第一节-效果演示
一、概述 语音合成又叫文字转语音(TTS-text to speech ),本专题我们记录从零搭建一个完整的语音合成系统,包括文本前端、声学模型和声码器,从模型训练到系统的工程化实现,模型可以部署在手机等嵌入式设备上…...
文章记单词 | 第35篇(六级)
一,单词释义 across [əˈkrɒs] prep. 从一边到另一边;横过;在… 对面;遍及;在… 上;跨越;adv. 从一边到另一边;横过;宽;从… 的一边到另一边;在…...
MySQL Binlog 数据恢复总结
🌲 总入口:你想恢复什么? 恢复类型 ├── 表结构 表数据(整张表被 DROP) │ ├── Binlog 中包含 CREATE TABLE │ │ └── ✅ 直接用 mysqlbinlog 提取建表 数据语句,回放即可 │ └── B…...
【Linux】进程基础入门指南(下)
> 🍃 本系列为Linux的内容,如果感兴趣,欢迎订阅🚩 > 🎊个人主页:【小编的个人主页】 >小编将在这里分享学习Linux的心路历程✨和知识分享🔍 >如果本篇文章有不足,还请多多包涵&a…...
NoETL×大模型:Aloudata重构数据智能新范式,开启Chat BI新落地之道
在当今数据驱动的时代,企业对于高效、智能的数据处理与分析需求日益增长。随着大模型的兴起,如DeepSeek等,数据智能领域正经历着前所未有的变革。 Aloudata大应科技创始人&CEO周卫林表示,企业的核心竞争力包括人才壁垒、技术…...
算法题(126):前缀和
审题: 本题需要我们将题目给出的数组的数据的[l,r]范围内的数据和打印 思路: 方法一:前缀和 前缀和的思想就是预处理数据,通过空间换时间的方式提高代码效率 第一步:利用数组f将前缀和记录下来,f[i]表示索引…...
选择排序(简单选择排序、堆排序)
简单选择排序(Selection Sort) 1. 算法思想 它通过多次遍历数组,每次从未排序部分中选择最小(或最大)的元素,将其放到已排序部分的末尾(或开头),直到整个数组有序。 2.…...
【JavaEE】Spring AOP的注解实现
目录 一、AOP 与 Spring AOP二、Spring AOP简单实现三、详解Spring AOP3.1 Spring AOP 核心概念3.1.1 切点(Pointcut)3.1.2 连接点(Join Point)3.1.3 通知(Advice)3.1.4 切面(Aspect)…...
【天外之物】加速度与速度的单位向量的内积得到加速度在切向向量上的值
切向加速度的标量值 a T a_T aT 正是加速度矢量 a \mathbf{a} a 与单位切矢量 T ^ \mathbf{\hat{T}} T^ 的内积(点积)。 1. 数学定义 设物体的速度为 v \mathbf{v} v,加速度为 a \mathbf{a} a,单位切矢量为 T ^ \mathbf{…...
eBay 2025春季财报揭示跨境电商新蓝海:五大隐秘品类引爆增长密码
核心数据速览 2024年第一季度,eBay全球商品交易总额(GMV)达255亿美元,同比增长5%。这一增长不仅源于季节性消费回暖,更折射出跨境电商行业在能源转型、供应链重构及消费需求升级中的结构性变革。透过数据ÿ…...
兔子桌面tv版下载-兔子桌面tv版官方app免费下载安装
兔子桌面 TV 版是一款专为智能电视和机顶盒设计的轻量化桌面应用,其界面采用大图标、大字体设计,支持自由调整应用顺序,将常用的影视、游戏 App 置顶,还可通过主题市场下载动态背景,满足用户对电视界面的个性化需求。 …...
绿算轻舟系列FPGA加速卡:驱动数字化转型的核心动力【2】
工业与医疗:精准化的幕后推手 在工业4.0与智慧医疗领域,绿算轻舟FPGA加速卡通过实时信号处理与高精度控制,推动关键场景的技术升级。 工业自动化:在机器视觉质检中,实现亚像素级缺陷检测,产线检测速度大幅…...
ubuntu1804服务器开启ftp,局域网共享特定文件给匿名用户
要在 Ubuntu 18.04 上设置一个 FTP 服务器,满足以下要求: 允许匿名登录(无需账号密码)。指定分享特定目录下的文件。只允许只读下载。 可以使用 vsftpd(Very Secure FTP Daemon)来实现。以下是详细步骤&a…...
k8s中pod报错 FailedCreatePodSandBox
问题现象: 创建容器时出现一下情况 而且删掉控制器的时候pod还会卡住 解决: 将calico的pod重新删掉。其中有1个控制器pod以及3个node pod 删掉后,大概10来秒就重新创建完成了。 然后现在在使用kubectl apply -f 文件.yaml 就可以正常创…...
请详细说明下面训练阶段的差别: Supervised Fine-Tuning、Reward Modeling、PPO、DPO、KTO、Pre-Training
目录 🔧 一、训练阶段总体流程(从底层到上层) 🧠 1. Pre-Training(预训练) 📌 目的: 📚 数据: ⚙️ 方法: 💡 举个例子…...
Go语言入门到入土——一、安装和Hello World
Go语言入门到精通——安装和Hello World 文章目录 Go语言入门到精通——安装和Hello World下载并安装让Go跑起来为你的代码启动依赖跟踪调用外部包总结 下载并安装 下载地址:https://go.dev/dl/ 下载后傻瓜式安装 查看是否安装完成 go version让Go跑起来 创建一个…...
React 入门完全指南:从零开始构建现代 Web 应用
在当今快速发展的前端开发领域,React 凭借其高效的组件化架构和强大的生态系统,已成为最受欢迎的 JavaScript 库之一。根据 2023 年 Stack Overflow 开发者调查,React 连续七年成为最常用的 Web 框架。无论是初创公司还是科技巨头,…...