ES6面试题总结
1. 谈谈你对 ES6 的理解,为什么要学习es6?
ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用的开发。学习ES6是成为专业前端正规军的必经之路。
2. ES和js有什么关系?
ES是JS的一种规格,JS是ES的实现
3. 解构赋值及其原理?
解构赋值是一种在编程中用于从数组或对象中提取数据并赋值给变量的方式。其原理基于匹配模式,可以将数组或对象的结构与变量名一一对应,以便快速访问和使用其中的数据。
4.var let const 的区别和使用场景?
var:var 声明的变量具有函数作用域(function scope),而不是块作用域(block scope)。这意味着它们在声明它们的函数内部是可见的,而在函数之外是不可见的。
var 声明的变量会被提升(hoisting),即在函数或全局作用域的顶部,变量声明会被提升到执行上下文的顶部。但初始化(赋值)不会被提升。
var 声明的变量可以被重复声明,而不会引发错误。
var 声明的变量在全局作用域中会成为全局对象的属性,这可能导致意外的变量覆盖。
使用场景:在 ES5 或旧版浏览器中使用,或者需要变量提升的情况。
在全局作用域中声明全局变量(但要谨慎,因为会导致变量污染和意外的覆盖)。
let:let 声明的变量具有块作用域(block scope),例如在 if、for、while 等语句块内部声明的变量只在该块内部可见。
let 声明的变量不会被提升到块的顶部,而是在声明位置之前访问会引发错误。
let 不允许在同一作用域内重复声明同名变量。
使用场景:在 ES6 或更新的环境中使用,因为它引入了块作用域,更安全且通常更易维护。
在需要控制变量的作用域范围,例如在循环中迭代时,使用 let 声明循环变量。
const:const 声明的变量也具有块作用域。
const 声明的变量必须在声明时进行初始化(赋值),而且一旦赋值后,就不能再重新赋值。
const 声明的对象或数组可以修改其内部属性或元素,但不能重新赋值。
5. 什么是模板字符串?
1.ES6(ES2015)为 JavaScript 引入了许多新特性,其中与字符串处理相关的一个新特性——模板字面量,提供了多行字符串、字符串模板的功能,相信很多人已经在使用了。模板字面量的基本使用很简单,但大多数开发者还是仅仅把它当成字符串拼接的语法糖来使用的,实际上它的能力比这要强大得多哦。夸张一点地说,这可能是 ES6 这么多特性中,最容易被低估的特性了。
2.模板字面量在 ES2015 规范中叫做 Template Literals,在规范文档更早的版本中叫Template Strings,所以我们见过的中文文档很多也有把它写成 模板字符串 的,有时为表述方便也非正式地简称为 ES6 模板
3.在 ES6 之前的 JavaScript,字符串作为基本类型,其在代码中的表示方法只有将字符串用引号符(单引号 ' 或 双引号 ")包裹起来,ES6 模板字面量(下文简称 ES6 模板)则使用反撇号符(`)包裹作为字符串表示法。两个反撇号之间的常规字符串保持原样,如:
`hello world` === "hello world" // --> true
`hello "world"` === 'hello "world"' // --> true
`hello 'world'` === "hello 'world'" // --> true
`\`` // --> "`" // --> true
6. 箭头函数和普通函数有什么区别
//箭头函数
let fun = () => {console.log('lalalala');
}
//普通函数
function fun() {console.log('lalla');
}箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种只包含一个表达式,连{ ... }和return都省略掉了。还有一种可以包含多条语句,这时候就不能省略{ ... }和return。1.箭头函数是匿名函数,不能作为构造函数,不能使用new2.箭头函数不绑定arguments,取而代之用rest参数...解决3.箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值4.箭头函数通过 call() 或 apply() 方法调用一个函数时,只传入了一个参数,对 this 并没有影响。5.箭头函数没有原型属性6.箭头函数不能当做Generator函数,不能使用yield关键字
7. 什么是扩展运算符?有什么使用场景?
1.扩展运算符(spread)是三个点(…)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。
应用场景:1.数组传参2.复制数组3.合并数组4.解构赋值5.字符串转数组6.类数组转真数组
8. 什么是symbol?
Symbol(符号)是 ECMAScript 6(ES6)引入的一种新的基本数据类型。它是一种唯一且不可变的数据类型,通常用于创建对象属性的唯一标识符。每个 Symbol 值都是唯一的,因此它们不会与其他 Symbol 值相等,即使它们的描述字符串相同也不例外。
9. Set和Map有什么相同和不同之处?
1.Set接口1.不允许重复对象2. 无序容器,你无法保证每个元素的存储顺序,TreeSet通过 Comparator 或者 Comparable 维护了一个排序顺序。3. 只允许一个 null 元素4.Set 接口最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap 实现的 HashSet;TreeSet 还实现了 SortedSet 接口,因此 TreeSet 是一个根据其 compare() 和 compareTo() 的定义进行排序的有序容器。
2.Map接口1.Map不是collection的子接口或者实现类。Map是一个接口。2.Map 的 每个 Entry 都持有两个对象,也就是一个键一个值,Map 可能会持有相同的值对象但键对象必须是唯一的。3. TreeMap 也通过 Comparator 或者 Comparable 维护了一个排序顺序。4. Map 里你可以拥有随意个 null 值但最多只能有一个 null 键。5.Map 接口最流行的几个实现类是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。(HashMap、TreeMap最常用)
10. 如何声明一个类?类如何继承?
class Cat extends Animal(){constructor(){super();//super关键字,用来指定父类的实例对象this.type = 'cat';}
}
let cat = new Cat();
cat.says('hello');//输出‘cat says hello’
11. 模块化有什么好处?
第一, 把一个系统分解成各个不同的子模块,不同的开发者专注于对其中某一模块的开发,一方面实现了劳 动的分工,另一方面也提高了自由软件开发的效率。基于模块化的性质,每个模块在开发出来以后都可以通过一个被称作是内核的原系统进行信息交流,发挥整个模块的功能,同时也并不会影响其他模块功能的发挥。而且在各个不同的模块整合在一起后,由于外部性的存在,会使整个系统增加的功能要超过该模块本身的功能。在此过程中实现了价值的分割与整合。
第二, 对于开发者而言,基于模块化的自由软件开发具有更大的吸引力,其在参与开发过程中可以得到更高的期望收益。
第三, 在非模块化的软件开发过程中,存在着严重的“搭便车”现象,当一个开发者选择参与开发,其余的开发者就会选择“搭便车”,最终会导致软件的供给不足;在基于模块化的开发过程中,所有的开发者都更倾向于参与开发不同的模块,从而实现整个系统的开发。
12.js由那三部分组成?
1、ECMAScript(JavaScript语法 )
2、DOM 页面文档对象模型
3、BOM 浏览器对象模型
13. 什么是Proxy?
Promise 是一种用于处理异步操作的设计模式,它提供了一种更优雅的方式来管理异步操作的结果和错误处理。Promise 是 ECMAScript 6(ES6)中引入的一种构造函数,用于更好地管理异步代码,并解决回调地狱(callback hell)问题。
相关文章:
ES6面试题总结
1. 谈谈你对 ES6 的理解,为什么要学习es6? ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用的开发。学习ES6是成…...
mybatisplus,jdbc 批量插入
1.测试用例 项目中遇到在做导入号码的时候我们会用到批量导入,提高入库的速度。接下来我们以10000条为测试用例。 1.1 批量执行sql语句 当需要成批插入或者更新记录时,可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库…...
如何使用IP归属地查询API来追踪网络活动
引言 在当今数字化世界中,了解网络活动的源头和位置对于网络安全、市场研究和用户体验至关重要。IP归属地查询API是一种强大的工具,可以帮助您追踪网络活动并获取有关IP地址的重要信息。本文将探讨如何使用IP归属地查询API来追踪网络活动,以…...
【SQL】S0 系列博文大纲
系列博文大纲 SQL 学习环境建议系列博文相关书籍系列博文大纲阶段进展 SQL 学习环境建议 对于 SQL 语言的学习,博主本地使用:MySQL DataGrip; MySQL 提供本地数据库服务; DataGrip IDE,承担编程运行测试任务…...
2023年8月体育用品行业数据分析(京东数据产品)
当前,亚运会临近,这也带动了国民对体育消费的热情,体育产品内销逐渐旺盛,“亚运经济”红利开始显现。鲸参谋数据显示,今年8月份,京东平台上体育用品行业的销量为185万,同比增长2%;销…...
国内高校镜像网站
国内各大高校开源镜像站 排名不分前后 清华大学:https://mirrors.tuna.tsinghua.edu.cn/ 北京大学:https://mirrors.pku.edu.cn/ 北京外国语大学:http:// https://mirrors.bfsu.edu.cn/ 北京理工大学:https://mirrors.bit.e…...
Linux安装kafka-manager
相关链接https://github.com/yahoo/kafka-manager/releases kafka-manager-2.0.0.2下载地址 百度云链接:https://pan.baidu.com/s/1XinGcwpXU9YBF46qkrKS_A 提取码:tzvg 一、安装部署 1.把kafka-manager-2.0.0.2.zip拷贝到目录 /opt/app/elk 2.解压…...
MYSQL索引——B+树讲解
B-/B树看 MySQL索引结构 B-树 B-树,这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树.它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图. B-树有如下特点: 所有键值分布在整颗树中; 任何一…...
VB将十进制整数转换成16进制以内的任意进制数
VB将十进制整数转换成16进制以内的任意进制数 数值转换,能够将十进制整数转换成16进制以内的任意进制数 Private Function DecToN(ByVal x%, ByVal n%) As StringDim p() As String, y$, r%p Split("0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F", ",")I…...
基于SpringBoot+Vue的宠物领养饲养交流管理平台设计与实现
前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…...
【图像去噪】【TGV 正则器的快速计算方法】通过FFT的总(广义)变化进行图像去噪(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
windbg调试句柄问题
这里写自定义目录标题 winform,句柄资源不够强,程序crash句柄主程序c程序,加载的插件是c# dll,这时候如何用windbg调试dll库如果查看句柄和对象的关系!handle 怎么能知道哪个句柄是Form对话框的句柄如何查看句柄对应的类对象 winf…...
9月13-14日上课内容 第三章 ELK日志分析系统及部署实例
本章结构 ELK日志分析系统简介 ELK日志分析系统分为 Elasticsearch Logstash Kibana 日志处理步骤 1.将日志进行集中化管理 2.将日志格式化(Logstash) 并输出到Elasticsearch 3.对格式化后的数据进行索引和存储 (Elasticsearch) 4.前端数据的展示(Kibana) Elasticsearch介…...
服务器端应用的安装
前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…...
关于硬盘质量大数据分析的思考
近日,看到Backblaze分享了一遍关于硬盘运行监控数据架构的文章,觉得挺有意义的,本文就针对这方面跟大家聊聊。 作为一家在2021年在美国纳斯达克上市的云端备份公司,Backblaze一直保持着对外定期发布HDD和SSD的故障率稳定性质量报告…...
RK3568核心板分区空间不足,如何修改分区大小?
在对评估板进行开发验证时,时常会遇到根目录空间不足的情况,而在其他分区又有冗余空间,这时则需要对分区大小重新进行分配,合理化利用分区空间。 本文将基于HD-RK3568-IOT评估板主要讲解如何修改eMMC分区大小。 1. 分区表介绍…...
Linux系统怎么修改主机名
【微|信|公|众|号:厦门微思网络】 1.备份主机名文件 首先redhat修改主机名,在进行任何修改之前,请务必备份主机名文件。这样,即使出现意外情况,你也能够轻松恢复到原始状态。使用以下命令备份主机名文件࿱…...
BroadcastChannel方法跨浏览器窗口通信
1. 描述 同源 的不同浏览器窗口,Tab 页,frame 或者 iframe 下的不同文档之间可以通过 BroadcastChannel 相互通信。 2. 构造函数 通过 BroadcastChannel 类传入的参数创建实例,传入的参数将指定通道名称,在同源环境下该通道可以…...
山石网科国产化防火墙,打造全方位边界安全解决方案
互联网的快速发展促进了各行各业的信息化建设,但也随之带来了诸多网络安全风险。大部分组织机构采用统一互联网接入方案,互联网出口承担着内部用户访问互联网的统一出口和对外信息服务的入口,因此在该区域部署相匹配的安全防护手段必不可少。…...
AVL 树
文章目录 一、AVL 树的概念二、AVL 树的实现1. AVL 树的存储结构2. AVL 树的插入 一、AVL 树的概念 在 二叉搜索树 中,当我们连续插入有序的数据时,二叉搜索树可能会呈现单枝树的情况,此时二叉搜索树的查找效率为 O(N) 俄罗斯的两位数学家 …...
ABAP开发避坑指南:绕过SAP GUI安全弹窗的5种编程方案实测
ABAP开发实战:5种绕过SAP GUI安全弹窗的编程方案深度解析 引言:SAP GUI安全机制的困境与突破 在SAP系统的日常开发与运维中,频繁出现的"系统试图创建文件"安全弹窗堪称ABAP开发者的噩梦。这种设计初衷为保护本地文件安全的机制&…...
开箱即用!LongCat动物百变秀本地部署指南,小白也能快速上手
开箱即用!LongCat动物百变秀本地部署指南,小白也能快速上手 1. 什么是LongCat动物百变秀? LongCat动物百变秀是一款基于美团开源模型开发的AI图片编辑工具,专门用于动物图片的创意编辑。它最大的特点是能够通过简单的自然语言描…...
GTSAM编译避坑:为什么你的Eigen版本总是不匹配?详细排查与修复教程
GTSAM编译中的Eigen版本冲突:从根源到解决方案的深度指南 引言 在机器人学和计算机视觉领域,GTSAM(Georgia Tech Smoothing and Mapping Library)作为因子图优化的标杆工具,其重要性不言而喻。然而,许多开发…...
如何在macOS上制作Windows启动盘:WinDiskWriter终极指南
如何在macOS上制作Windows启动盘:WinDiskWriter终极指南 【免费下载链接】windiskwriter 🖥 A macOS app that creates bootable USB drives for Windows. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 项目地址: h…...
在六亩半,春天不是日历上的数字,而是泥土间的青草香
当城市里的春天还停留在气温起伏的天气预报里,六亩半手作文创园的春意,早已从土地深处探出头来。那是荠菜嫩芽拱开泥土的力道,是柳条抽出新绿的柔软,是孩子们蹲在田埂上、指尖沾满青草汁液的鲜活记忆。在这里,春天不是…...
遥感智能体模块全景解析:从任务拆解到工作流编排
1. 遥感智能体的核心架构设计 第一次接触遥感智能体(RS-Agent)这个概念时,很多人会感到困惑:它和传统遥感处理软件有什么区别?简单来说,RS-Agent更像是一个"会思考的助手"。我参与过几个遥感智能…...
射频电路50Ω阻抗匹配原理与工程实践
射频电路中50Ω阻抗匹配的工程学解析1. 射频传输线阻抗标准的历史渊源1.1 同轴电缆的阻抗优化历程1929年贝尔实验室的系列实验揭示了同轴电缆的两个关键阻抗值:30欧姆可实现最大功率传输,77欧姆则对应最小传输损耗。这两个数值的算术平均值为53.5欧姆&am…...
快速验证控制逻辑:用快马平台十分钟搭建pid算法仿真原型
今天想和大家分享一个快速验证PID控制算法的小技巧。作为一名自动化工程师,经常需要调试各种控制参数,传统方法要搭建物理实验环境或者用MATLAB仿真,都很费时。最近发现用InsCode(快马)平台可以十分钟就做出一个可交互的PID仿真原型ÿ…...
RTX4090D显存优化:OpenClaw+Qwen3-32B-Chat批量处理千页PDF
RTX4090D显存优化:OpenClawQwen3-32B-Chat批量处理千页PDF 1. 为什么需要显存优化 当我第一次尝试用OpenClaw对接Qwen3-32B-Chat处理PDF文档时,遇到了一个棘手的问题——显存爆炸。当时只是处理一个200页的PDF,显存占用就飙到了22GB&#x…...
轴承故障诊断实战:从振动信号到Python代码的完整分析流程
轴承故障诊断实战:从振动信号到Python代码的完整分析流程 在工业设备维护领域,轴承作为旋转机械的核心部件,其健康状态直接影响设备运行效率与安全性。传统的人工巡检方式已难以满足现代工业对故障预警的实时性需求,而基于振动信号…...
