前端ES6相关的面试题

news2025/1/12 23:01:52

前端ES6相关的面试题

文章目录

  • 前端ES6相关的面试题
    • 一. var let const
      • var
      • let
      • const
    • 二 . 函数的扩展
      • reset参数
      • 箭头函数
    • 三 . 数组的扩展
    • 四.Set和map数据结构
      • Set
      • map
    • 五. Promise
    • 六. 模块化


一. var let const

var

var存在声明提升 ==>先上车,后买票
var声明的变量会挂载到window下面

console.log(num)//undefined
var num=10

let

  • let是ES6新增声明变量,具有块级作用域
  • let不存在变量提升,必须先声明,后使用
  • let存在展示性死区,比如先试用后声明
  • let在相同作用域下,不能声明相同的变量
	console.log(num)
    let num = 1

在这里插入图片描述

const

  • const是ES6新增声明变量,具有块级作用域
  • const声明的变量必须初始化(必须赋值)
  • const声明的常量不可以修改,这里说的是变量指向的内存地址所保存的数据不可以改变

二 . 函数的扩展

reset参数

ES6引入了reset参数取代arguments对象,reset接受的是一个数组
直接在函数的形参写(…values)

箭头函数

ES6 允许使用“箭头”(=>)定义函数。

箭头函数和function函数的区别 :

  • 箭头函数的this指向不同:
    • 箭头函数的this指向它的父级
    • 在普通函数中 : this指向调用它的对象,
    • 如果是构造函数 : this指向对象的实例
  • 箭头函数都是匿名函数,而普通函数可以是具名也可以是匿名
  • 箭头函数不能用做构造函数实例化对象,而普通函数可以
  • 箭头函数没有arguments

三 . 数组的扩展

  • forEach : 单纯的对数组进行遍历
  • map : 通过映射关系返回一个新的数组
  • filter : 根据条件过滤出对应的数组
  • find : 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
  • every : 只有数组中所有都满足条件才会返回true,否则返回false
  • some : 只要数组中`有一项满足条件就返回true,相反则返回false
  • reduce : 累计器 对数组每个元素执行一次回调函数,每一次运行回调函数之前计算的结果作为参数传入,最终将其返回

四.Set和map数据结构

Set

Set类似于数组,但是成员的值都是唯一的,没有重复的值
Set本身是一个构造函数

  • size :获取Set实例的元素个数
  • add : 添加元素
  • has : 查询Set实例是否存在某个元素(返回布尔值)
  • delete : 删除Set实例中某个元素
  • clear : 清空Set实例

Set主要的应用场景是对数组进行去重

map

map本质上是键值对的集合,它的键不限于字符串,

  • Map 保存键值对,并且能够记住键的原始插入顺序
  • Map 对键名是否相同的判断基本遵循严格相等===的判断
  • Map适用于即 key => value 的结构,需要字符串以外的键或者值

五. Promise

Promise是ES6新增的构造函数,比传统的解决方案更合理和强大

Promise简单来说就是一个容器,里面保存这未来才会结束的事件(通常是一个异步操作)

  • Promise有三种状态 : pending(进行中),fulfilled(已成功),rejected(已失败)
  • Promise对象的状态改变只有两种情况: 进行中变失败,进行中变成功,只要这两种情况发生,状态就不会改变了,这是称为resolved(已定型)

Promise.prototype上的方法:

  • then() : 实例状态改变的回调函数,有两个参数:第一个是成功回调函数,第二个是失败回调函数。他会返回一个全新的promise,因此可以继续then链式调用
  • catch() : 失败回调函数,状态变为rejected执行。相当于promise. prototytype.then(null/undifined,rejection),如果promise内发生了错误,但却没有定义catch(),这时运行到这一行代码会报错,但是不会影响到promise后面代码的执行
  • finally() : Promise实例无论什么状态都会执行的函数
  • all():将多个promise实例包装成一个新的promise实例

六. 模块化

ES6支持模块化的导入和导出

  • 按需导入 : import {} from “”
  • 按需导出 : export 导出的内容
  • 默认导入 : import 名字 from “”
  • 默认导出 : export default 导出的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java实操避坑指南四、spring中的坑

文章目录1. 项目搭建过程1. pom 依赖2. 在没有配置数据库相关时不要引入依赖包,如spring-boot-starter-data-jpa2. spring bean 默认生成策略的正确使用1. 代码示例2. 单元测试3. 工具类 [参考](#test2)4. 报错信息5. 分析6. 使用说明2. 使用了Autowired 注解&#…

【5G RAN】5G gNB间的N2/NGAP切换(handover)那点事儿

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

@Import注解详解

Import这个注解非常重要,而且在springboot项目当中随处可见,就拿springboot启动类来说,我们经常会遇到一些Enable相关的注解,例如开启异步EnableAsync、开启缓存支持EnableCaching、开启定时任务EnableScheduling等等… 目录一、I…

Oracle通过DBLINK访问达梦数据库

环境需求 需要安装配置以下相关软件: 1、Oracle Gateways 2、ODBC数据源(gateway机器) 3、达梦数据库软件(gateway机器) 安装配置 Windows环境 安装达梦数据库软件 安装步骤省略,可以参考DM 数据库…

【嵌入式Linux开发一路清障-连载02】Ubuntu22.04安装Shutter进行截图和标注

Ubuntu22.04安装Shutter进行截图和标注障碍 05-Ubuntu22.04中不会给截图做标注,写Bolg举步维艰命令行方式安装Shuttershutter中的常用命令为截取活动窗口设置快捷键安装gnome-web-photo截取长图--失败--未完待续小结下节预告障碍 05-Ubuntu22…

一起来部署项目-采购一台云服务器

前言 不会运维的程序员不是一个好程序员,你是这样认为吗?不,不重要,关键是很多小企业是让后端程序员去干运维的,省钱~~~o(╥﹏╥)o。特别是在YQ严重的当下,所以为了提高自己的竞争力,从今天起&…

万字爽文一篇带你掌握Java8新特性

陈老老老板说明:新的专栏,本专栏专门讲Java8新特性,把平时遇到的问题与Java8的写法进行总结,需要注意的地方都标红了,一起加油。本文是介绍Java8新特性与常用方法(此篇只做大体介绍了解,之后会把…

Java8中LocalDate详解Date线程不安全的原因

LocalDate 分类分工 java.time.LocalDate ->只对年月日做出处理 java.time.LocalTime ->只对时分秒纳秒做出处理 java.time.LocalDateTime ->同时可以处理年月日和时分秒优点 除了使用起来更加简单和灵活,主要是传统的时期处理类Date、Calendar不是多线…

刷爆leetcode第十二期 0026 数组中数字出现的次数

编号0026 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 题目示例如下 这里其实是一道我一个月之前做的题目 在学弟的博客里刚好看…

【数据结构与算法】Java实现七大排序算法汇总

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【数据结构与算法】 ✈️✈️本篇内容: Java实现七大排序算法汇总! 🚀🚀由于本篇博客涉及代码较多,博主把代码都提…

刷爆leetcode第十一期 0023~0025

刷爆leetcode第十一期 编号0023 相同的树编号0024 对称二叉树编号0025 另一个树的子树编号0023 相同的树 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是…

多旋翼无人机仿真 rotors_simulator:用键盘控制无人机飞行

多旋翼无人机仿真 rotors_simulator:用键盘控制无人机飞行前言书接上文接口测试键盘指令发布指令转换与发布修改 rotors_simulator 的控制接口节点测试前言 RotorS 是一个MAV gazebo 仿真系统。 提供了几种多旋翼仿真模型,例如 AscTec HummingbirdAsc…

PHP反序列化

序列化与反序列化 序列化 反序列是指把对象转换为字符串的过程&#xff0c;便于在内存、文件、数据库中保存、传输&#xff0c;PHP中使用serialize函数进行序列化。 <?phpclass Person{public $name"php";protected $id;private $age;}$a new Person();$a_se…

全排列笔记

14天阅读挑战赛 全排列 题目 给定一个 没有重复 数字的序列&#xff0c;返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 解答 方法一&#xff1a;回溯 思路 从高中的数学知识我们可以知道 从[1,2,3…

如何在Linux上优雅地写代码-Linux生存指南

初入Linux&#xff0c;发现老是要面对一个命令行&#xff0c;大黑框&#xff0c;看不懂各种手册&#xff0c;写代码也是用vi/vim&#xff0c;难受的捉急。其实Linux下的各种工具&#xff0c;强大得超出你的想象&#xff0c;如果你初入Linux&#xff0c;那么你急需阅读这篇文章&…

操作系统的主要功能

目录 一. 处理机管理功能 1.1 进程控制 1.2 进程同步 1.3 进程通信 1.4 进程调度 二. 存储器管理功能 2.1 内存分配 2.2 内存保护 2.3 地址映射 2.4 内存扩充 三. 设备管理功能 3.1 缓冲管理 3.2 设备分配 3.3 设备处理 3.4 设备独立性和虚拟设备 四…

关于Python爬虫兼职,这里有一条高效路径

前言 昨天&#xff0c;一位00后前来报喜&#xff0c;也表达感谢。 他说&#xff0c;当初刚毕业啥也不会也找不到工作&#xff0c;最后听了我的&#xff0c;边学爬虫边做兼职项目&#xff0c;积极主动求职投简历&#xff0c;既可以兼职获得收益&#xff0c;也能积累项目经验谋求…

Linux:以K、M、G查看文件大小;

简介&#xff1a;灵活多变的查看文件的大小 历史攻略&#xff1a; Linux&#xff1a;sudo免密 python&#xff1a;执行dos命令、Linux命令 案例源码&#xff1a; # 以适当方式显示文件大小&#xff1a; ls -lh# 以byte显示文件大小&#xff1a; ls -l# 以M显示文件大小&am…

NR PUSCH(五) DMRS

微信同步更新欢迎关注同名modem协议笔记 PUSCH DMRS和PDSCH DMRS内容基本一样&#xff0c;但也有不同的地方&#xff0c;例如PUSCH 可能需要Transform precoding&#xff0c;port 对应0~11(DMRS configured type2)等等。先简单看看Transformprecoding的相关内容&#xff0c;Tr…

Excel数据分析实战之开宗明义: Excel与数据分析实战

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结…