es6面试题

ES6面试题

var、let、const区别
共同点:都是可以声明变量
区别:
1、var具有变量提升机制,let和const没有
2、var 声明的变量是函数作用域或全局作用域,而 const 和 let 声明的变量是块级作用域。
3、var可以多次声明同一个变量,let和const不可以
4、const 声明的变量必须进行初始化赋值,而 var 和 let 声明的变量可以不进行初始化赋值。

作用域考题

考题一:

Var没有自身的作用域,所以var n=1,打印是1

考题三:

将下列对象合并
方式一:Object.assign

方式二:

方式三:自己封装

箭头函数和普通函数的区别?

1、this指向的问题
箭头函数的this是在箭头函数定义时就决定的,而且是不可修改的(不可用call、apply、bind)
****箭头函数的this指向定义时候、外层第一个普通函数的this
2、箭头函数不能new(不能当作构造函数)
3、箭头函数没有prototype
4、箭头函数没有arguments对象

Promise是什么,它的API有哪些?

1、- Promise是es6新增的语法,用来处理异步请求,解决了es5中回调地狱的问题
2、- Promise的回调函数中接收两个参数,第一个表示请求成功的回调,第二个表示请求失败的回调,分别是resolve和reject。
3、- 使用.then()去获取结果,使用.catch()去捕获异常,并且上一个Promise的执行结果会返回一个Promise对象。

  • Promise.all()和Promise.race()

使用场景:
有些时候我们做一个操作可能得同时需要不同的接口返回的数据,这时我们就可以使用Promise.all;
有时我们比如说有好几个服务器的好几个接口都提供同样的服务,我们不知道哪个接口更快,就可以使用Promise.race,哪个接口的数据先回来我们就用哪个接口的数据。
Promise有几种状态
有3种状态
4、pending(进行中)
5、fulfilled(已成功)
6、rejected(已失败)

async和await?区别?如何用?工作原理?

Async用来定义函数的,是一个异步函数,打印这个函数名会得到promise这个对象,(函数名称.then(函数名称调用then方法,就是promise调用then方法)
Await 后面加表达式,一般使用promise的表达式
工作原理:
Async执行成功会有返回值,内部调用promise.resolve()

  1. Promise是ES6中处理异步请求的语法,使用.then()来实现链式调用,使用.catch()来捕获异常。
  2. async/await 是对Promise的升级,
    async用于声明一个函数是异步的,
    await是等待一个异步方法执行完成(await一个Promise对象)
    await = promise.then成功的情况。
    async/await的捕获异常可以使用try/catch语法。(也可以使用.catch语法)
    find和filter的区别,
    find是查找符合的,返回第一个,
    filter是筛选所有符合的
    区别一:返回的内容不同
    filter返回的是新数组
    find返回的是具体内容
    区别二:
    Find匹配到第一个即返回
    Filter:返回整体(每一个匹配都加入数组,返回这个数组)”

some和every的区别,

some判断是否有符合的,如果有一项就返回true,返回true或false
every判断数组里每一项是否都符合,全部匹配返回true,返回true或false

flat与flatMap使用

1、flat:数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。

[1, 2, [3, 4]].flat()
// [1, 2, 3, 4]

flat()默认只会“拉平”一层,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。
如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。
如果原数组有空位,flat()方法会跳过空位

[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]][1, 2, [3, [4, 5]]].flat(2)
// [1, 2, 3, 4, 5][1, [2, [3]]].flat(Infinity)
// [1, 2, 3]//如果原数组有空位,flat()方法会跳过空位。
[1, 2, , 4, 5].flat()
// [1, 2, 4, 5]

2、flatMap()方法:对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat()方法。
该方法返回一个新数组,不改变原数组。
flatMap()只能展开一层数组。

// 相当于 [[[2]], [[4]], [[6]], [[8]]].flat()
[1, 2, 3, 4].flatMap(x => [[x * 2]])
// [[2], [4], [6], [8]]

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

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

相关文章

智能电视(如小米电视)安装应用(当贝市场、浏览器)、去开机广告

文章目录 安装当贝市场U盘安装(智能电视通用)不用U盘安装(智能电视通用,需要自带应用商店有悟空遥控器等应用)不用U盘安装(智能电视通用,需要自带应用商店有应用管家等应用)不用U盘安…

trim 去除空格

trim(str, pos) 该方法可以去除空格&#xff0c;分别可以去除所有空格&#xff0c;两端空格&#xff0c;左边空格&#xff0c;右边空格&#xff0c;默认为去除两端空格 str <String> 字符串pos <String> 去除那些位置的空格&#xff0c;可选为&#xff1a;both-默…

JUnit5常用断言

解释 断言&#xff0c;在编程中指断定程序的执行结果一定和预期一样&#xff0c;如果不一样则报错&#xff0c;并且中断后面代码的执行 依赖 <dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><…

QML 3D入门知识路线

目前使用的版本 v5.14.0 模块导入 使用QML 3D时需要 import Qt3D.Core 2.14 核心模块类 V6以上的版本已经发布&#xff0c;所以有很多module会发生变化&#xff0c;主要有核心module、输入、逻辑、渲染、动画和扩展module&#xff0c;以及2D/3D场景模块 类名 能…

python控制流工具

4.1. if 语句 最让人耳熟能详的语句应当是 if 语句&#xff1a; >>> >>> x int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: ... x 0 ... print(Negative changed to zero) ... eli…

Java 面试笔试题 - Stream 和 Lambda 表达式的使用

请按以下步骤实现代码 创建一个新的 JDK 1.8 项目&#xff0c;能运行 main 方法即可 新建一个 Record 类&#xff0c;类中包含以下属性 level, teacher, student 构建一个 List 集合&#xff0c;集合中包含 8 个 Record 对象&#xff0c; Record 对象包含以下属性&#xff1a…

【新版Hi3521DV200处理器性能】

新版Hi3521DV200处理器性能 Hi3521DV200是针对多路高清/超高清&#xff08;1080p/4M/5M/4K&#xff09;DVR产品应用开发的新一代专业SoC芯片。Hi3521DV200集成了ARM Cortex-A7四核处理器和性能强大的神经网络推理引擎&#xff0c;支持多种智能算法应用。同时&#xff0c;Hi352…

类和对象 02【C++】

文章目录 一、 构造函数(初始化列表)1. 初始化列表2. explicit 关键字3. static成员 二、 友元1. 友元函数2.友元类 三、 内部函数四、 匿名对象五、 拷贝对象时的一些编译器优化 一、 构造函数(初始化列表) 进一步理解构造函数&#xff0c;我们知道创建对象时&#xff0c;编译…

手把手教会你 - StreamAPI基本用法

1. 简介 目前响应式编程的学习中很多时候都用到了Lambda表达式和StreamAPI&#xff0c;那么今天就在这里记录一下一些最基本的使用方法。 StreamAPI中引入了流的概念&#xff0c;其将集合看作一种流&#xff0c;流在管道中传输&#xff08;动态的&#xff09;&#xff0c;可以…

IDEA构建Maven JavaSE工程的全面指南

IDEA构建Maven JavaSE工程的全面指南 一、引言 在现代Java开发中&#xff0c;Maven已经成为了一个不可或缺的工具&#xff0c;它帮助我们管理项目的依赖、构建、文档、报告等。而IntelliJ IDEA&#xff08;简称IDEA&#xff09;则是一款强大的Java集成开发环境&#xff08;ID…

AI助力剧本创作:如何5分钟内构思出热门短剧大纲

人工智能重塑短剧行业&#xff1a;从剧本创作到市场推广 在当今短剧行业的飞速发展中&#xff0c;剧本创作的质量及其更新的速度已然成为短剧能否转化为热门作品的关键性因素。然而&#xff0c;随着短剧创作成本的日益攀升&#xff0c;一个卓越的剧本无论在创作时间上还是在构思…

【JAVA重要知识 | 第六篇】Java集合类使用总结(List、Set、Map接口及常见实现类)以及常见面试题

文章目录 6.Java集合类使用总结6.1概览6.1.1集合接口类特性6.1.2List接口和Set接口的区别6.1.3简要介绍&#xff08;1&#xff09;List接口&#xff08;2&#xff09;Set接口&#xff08;3&#xff09;Map接口 6.2Collection接口6.3List接口6.3.1ArrayList6.3.2LinkedList—不常…

2023年第三届中国高校大数据挑战赛(第二场)B题思路

竞赛时间 &#xff08;1&#xff09;报名时间&#xff1a;即日起至2024年3月8日 &#xff08;2&#xff09;比赛时间&#xff1a;2024年3月9日8:00至2024年3月12日20:00 &#xff08;3&#xff09;成绩公布&#xff1a;2024年4月30日前 赛题方向&#xff1a;文本或图象分析方…

5.51 BCC工具之slabratetop.py解读

一,工具简介 slabratetop工具以类似于 top 命令的实时刷新显示方式,展示从内核内存分配缓存(SLAB 或 SLUB)中的分配速率和总字节数。例如: (注:SLAB 和 SLUB 是 Linux 内核中用于内存管理的两种不同机制,它们都提供了一种方式来缓存和管理小对象的内存分配。) 二,…

学生信息管理APP

设计内容简介 本次设计使用Android Studio实现一个学生信息管理系统,系统功能结构如下图所示: 详细设计 数据库设计SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低。…

143:vue+leaflet 在25833投影坐标下,加载一小块图像叠层数据

第143个 点击查看专栏目录 本示例是介绍如何在vue+leaflet, 自定义CRS,形成新的投影,这里是25833投影,并使用 L.Proj.imageOverlay的方法在地图上加载载一小块图像叠层数据。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式…

Python爬虫——Scrapy-1

目录 简介 安装 基本使用 1. 创建爬虫的项目 2. 创建爬虫文件 3. 运行爬虫代码 scrapy项目组成 scrapy工作原理 ​编辑 58同城 scrapy架构组成 汽车之家 总结 简介 Scrapy 是一个基于 Python 的开源网络爬虫框架&#xff0c;它可以帮助开发者快速、高效地构…

js 实现点击按钮小球加入购物车动画

本文旨在实现类似点击按钮实现小球加入购物车效果。 使用技术&#xff1a; Vue2使用 Pubsub 监听按钮点击事件&#xff08;如果不想用也可以自己改造下&#xff09;监听 onmousemove 来获取按钮点击时的鼠标位置 小球组件&#xff1a; html css&#xff1a; 小球父元素&am…

【新国标送检】

新国标送检 ■ 设备型号差异性检测■■■■ ■ 设备型号差异性检测 TMS-21&#xff0c;TMS-23&#xff0c; TMS-25 各个型号都送一台过去做差异性检测。 ■ ■ ■ ■

机器学习 | 使用CatBoost处理缺失值

数据是任何分析或机器学习的基础。然而&#xff0c;现实世界的数据集并不完美&#xff0c;它们经常包含缺失值&#xff0c;这可能导致任何算法的训练阶段出现错误。处理缺失值至关重要&#xff0c;因为它们可能会导致数据分析和机器学习模型中出现偏差或不准确的结果。处理缺失…