面试记录总结

es6新特性

---------------------------------------------------------------------------------------
let
1.变量不能重复声明
2.块儿级作用域
3.不存在变量提升
4.不影响作用域链
const
1.一定要赋初始值
2.一般常量使用大写(潜规则)
3.常量的值不能修改
4.块儿级作用域
5.对于数组和对象的元素修改,不算做对常量的修改,不会报错
var let const的区别
1. 使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。
2. 使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。
3. 使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值。 ```
---------------------------------------------------------------------------------------
模板字符串  ES6引入新的声明字符串的方式 (``)。
---------------------------------------------------------------------------------------
方法
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
repeat():repeat方法返回一个新字符串,表示将原字符串重复n次。
padStart():用于头部补全。
padEnd():用于尾部补全。
trimStart():清除字符串左边的空白。
trimEnd():清除字符串右边的空白。
replaceAll():可以一次性替换所有匹配。
at():接受一个整数作为参数,返回参数指定位置的字符,支持负索引(即倒数的位置)。
---------------------------------------------------------------------------------------
箭头函数 () => {}
特性:
1.this 是静态的。this 始终指向函数声明时所在作用域下的 this 的值
2.不能作为构造实例化对象
3.不能使用 arguments 变量
4.箭头函数的简写
1)省略小括号,当形参有且只有一个的时候let add = n => {return n + n;}console.log(add(9));
2) 省略花括号,当代码体只有一条语句的时候,此时 return 必须省略let pow = (n) => n * n;console.log(pow(8));
---------------------------------------------------------------------------------------
模块化是指将一个大的程序文件,拆分成许多小的文件,然后将小文件组合起来。
模块化的优势有以下几点:1)防止命名冲突2)代码复用3)高维护性
模块功能主要由两个命令构成:exportimportexport 命令用于规定模块的对外接口import 命令用于输入其他模块提供的功能
---------------------------------------------------------------------------------------
数组的扩展
array.of():用于将一组值,转换为数组。
find():用于找出第一个符合条件的数组成员,如果没有找到返回undefinedfindIndex():用于找出第一个符合条件的数组成员的位置,如果没有找到返回-1includes():表示某个数组是否包含给定的值,返回布尔值。
flat():将多维数组转化为低位数组。
flatMap():将多维数组转化为低位数组。
at():接受一个整数作为参数,返回对应位置的成员,并支持负索引。这个方法不仅可用于数组,也可用于字符串和类型数组(TypedArray)。
扩展运算符:可以将数组进行实例化,也可以将实例化的数据转成数组的形式。用途:1.数组的合并2.数组的克隆3.将伪数组转为真正的数组
---------------------------------------------------------------------------------------
对象的扩展
object.keys()方法返回一个给定对象的所有的键
object.values()方法返回一个给定对象的所有的值
object.entries()方法返回一个给定对象自身可遍历属性 [key,value] 的数组
Object.fromEntries()方法是Object.entries()的逆操作,用于将一个键值对数组转为对象。
object.assign()方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)
---------------------------------------------------------------------------------------
Set和Map数据结构
1.Set(集合)​    ES6 提供了新的数据结构 Set(集合)。它类似于数组,但成员的值都是唯一的,集合的属性和方法:​​ 1) size    返回集合的元素个数​2) add     增加一个新元素,返回当前集合​3) delete  删除元素,返回 boolean 值​4) has     检测集合中是否包含某个元素,返回 boolean 值2.mapES6 提供 Map数据结构。它类似于对象,也是键值对的集合。但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。Map的属性和方法:1) size    返回Map的元素个数2) set     增加一个新元素,返回当前 Map3) get     返回键名对象的键值4) has    检测 Map 中是否包含某个元素,返回 boolean 值5) clear   清空集合,返回undefined
---------------------------------------------------------------------------------------
classES6 提供了更接近传统语言的写法,引入了 Class()这个概念,作为对象的模板。通过 class 关键字,可以定义类。基本上,ES6class 可以看作只是个语法糖,它的绝大部分功能,ES5 都可以做到,新的 class 写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。
知识点:1) class 声明类2) constructor 定义构造函数初始化3) extends 继承父类4) super 调用父级构造方法5) static 定义静态方法和属性6) 父类方法可以重写
---------------------------------------------------------------------------------------
promise
Promise是 ES6引入的异步编程的新解决方案。回调函数和异步编程是js特点之一,但是js中传统的回调函数编写太麻烦,如果嵌套的回调函数层级过多会导致回调地狱,代码很难看,因此promise在es6被引入用来解决这个问题。语法上Promise 是一个构造函数用来封装异步操作并可以获取其成功或失败的结果。语法: resolve和reject是传进来的函数
new Promise((resolve,reject)=>{// 成功的回调resolve()// 失败的回调reject()
})promise的三种状态
1.pending: 等待中,或者进行中,表示还没有得到结果
2.resolved(Fulfilled): 已经完成,表示得到了我们想要的结果,可以继续往下执行
3.rejected: 也表示得到结果,但是由于结果并非我们所愿,因此拒绝执行resolve 函数的作用:在异步操作成功时调用,并将异步操作的结果作为参数传递出去
reject 函数的作用:在异步操作失败时调用,并将异步操作的结果作为参数传递出去
then 获取Promise的结果,查看成功/失败回调函数的结果
all 接受一个数组(迭代对象)作为参数,数组成员都应为Promise实例。返回所有数组,但是其中一个返回rejected就会中断返回失败的那一项
race 接受一个数组(迭代对象)作为参数,数组成员都应为Promise实例。一个成功则会返回成功的Promise
---------------------------------------------------------------------------------------

深拷贝需要注意哪些点

- 数据类型的处理:不同的编程语言和数据类型可能需要不同的处理方式。例如,在使用JavaScript的JSON.stringify()JSON.parse()方法进行深拷贝时,会忽略undefined、symbol和函数类型的数据。此外,这种方法也无法正确处理循环引用的情况,即一个对象直接或间接地引用了自身,这会导致无限循环错误。- 特殊对象的处理:对于特殊对象如日期、正则表达式、全局变量等,需要特别处理以确保它们在深拷贝后仍然有效。例如,在JavaScript中,使用JSON.stringify()JSON.parse()会丢失这些特殊对象的类型信息,需要特别的方法来处理这些情况。- 性能考虑:深拷贝可能会涉及大量的内存分配和复制操作,特别是在处理大型或复杂的数据结构时。因此,需要考虑性能影响,避免在不需要频繁进行深拷贝的情况下过度使用这种方法。- 循环引用问题:在某些编程语言中,如果数据结构中存在循环引用,简单的深拷贝方法可能会失败或陷入无限循环。需要实现能够处理这种情况的深拷贝算法。

require和import的区别

require 是直接运行
import 是编译时运行,它必须放在文件开头,而且使用格式也是确定的,不容置疑。它不会将整个模块运行后赋值给某个变量,而是只选择import的接口进行编译,这样在性能上比require好很多。

ES5实现继承

1.原型链继承子类实例的原型指向父类实例,当在子类实例中找不到属性和方法,就去父类实例中找,从而实现原型链继承缺点:多个子类实例指向同一个父类实例,当某一个子类实例中的属性或方法发生改变时,会影响其余所有的子类实例。子类实例创建时,无法向父类构造传参
2.构造函数继承子类构造函数中运行父类构造函数,并为其绑定this缺点:无法继承父类原型上的属性和方法
3.组合式继承原型继承+构造函数继承缺点:子类实例构造时,会执行两次父类构造函数(new Person()  Person.apply()4.寄生组合式继承在组合式继承的基础上,将指向父类实例,改为指向父类原型,减少父类构造函数执行次数

跨域解决方案

 1. JSONP跨域2. CORS 跨域资源共享 (前端不需要做任何改变)3. nginx代理跨域4. nodejs中间件代理跨域5. WebSocket协议跨域

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

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

相关文章

MinIO - 从 环境搭建 -> SpringBoot实战 -> 演示,掌握 Bucket 和 Object 操作

目录 开始 Docker 部署 MinIO 中的基本概念 SpringBoot 集成 MinIO 依赖 配置 MinIO 时间差问题报错 The difference between the request time and the servers time is too large MinIO 中对 Bucket(文件夹) 的操作 是否存在 / 创建 查询所有…

如何产生一个有价值的观点

今天看了黄执中的一个课叫如何产生有价值的观点收获挺大的。 有价值指的是能让人听完有“哦”的提壶灌顶的感觉。而观点是指具有浅负担,深触动,可迁移属性的一个想法。 黄执中说这样的观点不是灵机一现,而是可以量产的。他给我举了三个计算…

Apache Seata 源码分析Seata-XID传递 Dubbo篇

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 源码分析 Seata-XID 传递 Dubbo 篇 本文作者:FUNKYE(陈健斌),杭州某互联网公司主…

TQ15EG开发板教程:MPSOC创建fmcomms8工程

链接:https://pan.baidu.com/s/1jbuYs9alP2SaqnV5fpNgyg 提取码:r00c 本例程需要实现在hdl加no-OS系统中,通过修改fmcomms8/zcu102项目,实现在MPSOC两个fmc口上运行fmcomms8项目。 目录 1 下载文件与切换版本 2 编译fmcomms8项…

超越YOLO! RT-DETR 实时目标检测技术介绍

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

基于STM32F103C8T6的同步电机驱动-电流环PI与力矩模式

基于STM32F103C8T6的同步电机驱动-电流环PI与力矩模式 本系列文章: 基于STM32F103C8T6的同步电机驱动-CubeMX配置与IQmath调用基于STM32F103C8T6的同步电机驱动-PWM驱动代码以及SVPWM的实现基于STM32F103C8T6的同步电机驱动-ADC采样与基于MT6701的角度获取基于STM32F103C8T6的…

JavaScript中的解构赋值:用途与优势

文章目录 JavaScript中的解构赋值:用途与优势一、简化数组和对象数据的访问数组解构对象解构 二、函数返回多个值三、与扩展运算符结合使用数组扩展对象扩展 四、默认值五、嵌套解构总结 JavaScript中的解构赋值:用途与优势 在JavaScript中,…

linux cpuspeed工具

cpuspeed 是一个用于管理和监控 CPU 频率的工具,主要用于基于 Linux 的系统。它可以帮助用户根据系统的负载自动调整 CPU 频率,以节省电能或提高性能。 以下是一些常见的 cpuspeed 用法及其配置示例: 安装 cpuspeed 在某些 Linux 发行版上…

免杀笔记 ----> DLL注入

这段时间我们暂时没什么事情干的话我们就继续更新我们的免杀笔记力!!! :今天我们讲DLL注入 目录 1.DLL注入 2.直接加载DLL? 3.远程线程注入 获取Handle 远程申请内存空间 将我们的CS的DLL加载入内存 创建远程线…

02:C语言数据类型

C语言数据类型 1、整型变量2、浮点型变量3、字符型变量4、有符号数和无符号数 1、整型变量 #include <stdio.h>int main(void) { /* int a; //定义一个整型变量aint b; //定义一个整型变量bint c; //定义一个整型变量c */ /* int a,b,c; //也可以这样定义a 25;b 6; *…

Linux 服务器环境搭建

一、安装 JDK 官网下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads # 创建目录 mkdir /usr/local/java/# 解压 tar -zxvf jdk-8u333-linux-x64.tar.gz -C /usr/local/java/# 配置环境变量 vim /etc/profileexport export JAVA_HOME/usr/local/java/…

【Linux】进程信号_4

文章目录 八、进程信号3. 信号的处理4. 可重入函数5. volatile 未完待续 八、进程信号 3. 信号的处理 当某个信号的处理函数被调用时&#xff0c;操作系统会自动将当前信号假如进程的信号屏蔽字当中。如果处理完该信号&#xff0c;该信号同样也会自动从信号屏蔽字中 移除。该…

马尔科夫假设

马尔科夫假设 马尔科夫假设&#xff08;Markov Assumption&#xff09;&#xff0c;也称为无记忆假设&#xff0c;它假设在给定当前状态的情况下&#xff0c;未来的状态只依赖于当前状态&#xff0c;而与过去的状态序列无关。在强化学习中&#xff0c;如果这个假设不成立&…

Apache Seata core 模块源码分析

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 一 . 导读 core 模块定义了事务的类型、状态&#xff0c;通用的行为&#xff0c;client 和 s…

毕业季有感

本文介绍一些刚毕业、即将入职前的随想与心得。 毕业和上班无缝衔接。要离开北京了&#xff0c;来到天津。 我一向很喜欢探索新环境&#xff0c;每一次要到新的学校、新的城市、新的单位都会很激动&#xff1b;这一次也是一样&#xff0c;在一开始几乎只有对新环境的憧憬。但是…

zoom缩放问题(关于ElementPlus、Echarts、Vue3draggable等组件偏移问题)

做了一个项目下来&#xff0c;由于整体界面偏大&#xff0c;采取了缩放90%&#xff0c;导致很多组件出现偏移问题&#xff0c;以下我会把我遇到的各种组件偏移问题依次进行描述解答&#xff1a; ElementPlus选择器下拉偏移 <template><el-select :teleported"f…

7.6第三天作业

一、在数据库中创建一个表student&#xff0c;用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); &#xff08;1.&#xff09;先创建一个数据库 &#xff08;2.&#xff09;创建student表 查看是否创建成功 1、向studen…

http读书笔记

持久化 HTTP/1.1 和一部分的 HTTP/1.0 想出了 持久连接&#xff08;HTTP Persistent Connections&#xff0c; 也称为 HTTP keep-alive 或 HTTP connection reuse&#xff09; 的方法。 持久连接的特点是&#xff0c; 只要任意一端 没有明确提出断开连接&#xff0c; 则保持 T…

MySQL第三天作业

一、在数据库中创建一个表student&#xff0c;用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); 1、向student表中添加一条新记录 记录中id字段的值为1&#xff0c;name字段的值为"monkey"…

【Linux】查找命令——which,type,find,whereis,locate

命令与文件的查找 文件的查找可就厉害了&#xff0c;因为我们常常需要知道哪个文件放在哪里&#xff0c;才能够对该文件进行一些修改或维护等操作。 有时候某些软件配置文件的文件名是不变的&#xff0c;但是各Linux发行版放置的目录则不同。 此时就要利用一些查找命令将该配…