当前位置: 首页 > news >正文

2023前端面试整理

1. 介绍一下最近参与的项目,负责那些业务,在开发过程中遇到过问题吗?最后是咋样处理的?

之前负责过大小十几个项目,负责过浙里办的整套上架流程,负责过数据大屏统计,后台管理系统文书生成表单生成等,浙政钉应用内嵌开发,搜索表单统一配置化,移动端form配置。遇到的问题,在一次html转pdf时,中文转出乱码的问题,最后是因为不支持中文格式,只支持英文,最后把.ttf字体引入才得以解决。

2. H5C3新特性有哪些?

本地存储比如localStorage、sessionStorage,
语义化标签,如header、footer、nav等,
flex,reba,transition,媒体查询,shadow,border-radius,渐变linear-gradient

3. vue中生命周期的理解,父子组件渲染更新卸载时组件调用顺序?

父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted

4. vue中数据的双向数据绑定原理?

VUE2.0通过object.defineProperty来劫持对象属性的getter和setter操作,VUE3.0通过Proxy来劫持数据

5. vue中组件通讯方式?

props,$emit,ref,Vuex,bus,LocalStorage/SessionStorage

6. vue中computed和watch的区别,使用场景?

计算属性和监听 计算是多合一 例如购物车,监听是一控制多 例如搜索框

7. vue组件中data为什么必须是一个函数?

Vue组件可以同时存在多个实例,如果直接使用对象形式的data选项,实例将会共享同一个data对象,会造成数据互相干扰的问题。设置为函数可以让每个实例都拥有自己独立的data对象。当组件被创建多次时,每个实例都会调用该函数并返回一个新的data对象

8. 对keep-alive 的了解?

当你在对组件的反复切换的时候,去复用缓存的v-node,可以提高页面的渲染效率,include ,exclude

9. vueRouter 路由钩子函数,如何进行动态路由权限管理?

var asyncRouteMenu = asyncRouetes.filter((item,index)=>{
return item.meta.roles.includes(userRole)
})
//将新路由添加到路由中, 如果不加组件component不能正确渲染
VueRouter.addRoutes(asyncRouteMenu);
//为了正确渲染导航,将对应的新的路由添加到VueRouter中

10. 介绍一下vuex,具体使用方法,在哪使用过?

state,mutations,actions-dispatch

11. vuex辅助函数有哪些,分别在哪里使用?

mapState, mapMutations, mapActions, mapGetters

12. 使用过mixins混入吗?有哪些缺点?

用过,不利于阅读,命名冲突

13. $nextTick了解吗?实现原理是什么?

可以在DOM更新完毕之后执行一个回调,简单的理解是:当数据更新了,在dom中渲染后,⾃动执⾏该函数

14. vue项目如何进行性能优化?

1.加 CDN,图片。js\css文件用cdn加载。
2.图片懒加载,按需加载。压缩图片,webpp格式的图片。组件懒加载,组件按需引入;(页面滚动之后再加载首屏下面的数据)
3.减少公共自定义组件。减少全局的混入
4.减少http请求。
5.前端、服务端开启gzip。
6.删除mock.js.
7.删除无效代码。
8.检测后端接口,性能测试。
9.使用浏览器强缓存策略。
10.延迟调用一些方法,减少js主进程(比如埋点方法。fastclick,vconsole的加载)
11.路由懒加载。
12.需要设置的样式很多时,设置className,不要设置style;减少重绘和回流;
13.避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来;要比div+css慢;
14.编码优化:缓存对象成员值,将对象成员值缓存到局部变量中会加快访问速度。(局部变量比全局变量读取快、对象嵌套的越深,读取越慢、原型链中的位置越深,读取的越慢)

15. vue中路由懒加载实现方式,组件懒加载实现方式?

const HelloWorld = ()=>import('需要加载的模块地址')

16. vue中动态渲染组件的方法?

< component :is=“item.meta.icon” />

17. 介绍vue自定义指令?

Vue.directive

18. 封装过vue公共组件吗?封装组件的思路?

一个组件无非就是我传入了什么,和你抛出了什么

19. Vue2 和vue3的区别

不允许直接使用slot
正确格式为 v-slot
将v-if当作v-for大的一个判断语句,不会相互冲突
数据双向绑定原理不同
生命周期函数钩子不同
diff算法不同

vue2 比较每一个节点,而对于一些不参与更新的元素,进行比较是有点消耗性能的。
vue3在初始化的时候会给每一个虚拟节点添加一个patchFlags,是一种优化的标识。只会比较patchFlags发生变化的节点,进行识图更新。而对于patchFlags没有变化的元素作静态标记,在渲染的时候直接复用。

20. webpack如何理解,是否自己配置过,有哪些配置?

.env文件

21. ES6新特性有哪些?

let,const,promise,()=>{},模板字符串,结构赋值,includes

22. 数组去重的方法有哪些?

[…new Set(array)],filter()和indexOf

23. 判断对空对象方法?

Object.keys()返回空数组,JSON.stringify(data) == “{}”,for in报错

24. Call() bing() apply()的区别?

call(window,‘global’)
apply(window,[‘global’])
bind(window,‘global’)

25. 说一下原型和原型链?

原型是一个对象,是函数的一个属性prototype;比如this
每一个protoType都有一个proto,顺着proto来找对象的protoType链路就叫原型链

26. 作用域和作用域链是什么?

就是在这个范围内,变量是可以使用的,超过这个范围,变量就无法使用,这个范围就是作用域
先局部=>全局这个查找过程形成的链条叫做作用域链

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

箭头函数的this指向不能被改变,()=>{} 一个表达式时 {} return 可以省略,箭头函数没有原型

28. 说一下js 中this指向问题?

this永远指向,调用它的对象,默认指向window/全局对象。

29. 说一下闭包,有那些缺陷,用闭包处理过那些问题?

函数防抖,节流的时候会return一个函数出去

30. 说一下深拷贝浅拷贝,如何实现?

深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象

31. js中如何实现跨域,在工作中怎么解决跨域问题。

协议、域名、端口 jsonp
服务器设置Access-Control-Allow-Origin将可允许的访问请求

32. 说一下对promise的理解,如何实现一个promise?

是es6新增的一个构造函数 里面放的是一个异步操作,解决了地狱回调的问题,是一种链式调动的方式

33. 说一下防抖和截流,如何在工作中实现一个防抖截流?

防抖:比如输入框的input事件,每输一个文字就会触发一次,只执行最后一次得触发
节流:游戏中的技能,释放一个技能后会有技能CD,控制多久能触发一次

34. 介绍一下微信小程序登陆流程?

小程序通过wx.login()获取登录凭证code=>通过wx.request()将code,appid ,secret发送到开发者服务器=>返回服务器自定义登录信息

35. 微信小程序如何实现与第三方进行数据交互,例如h5 ios 安卓

36. 公众号登陆

公众号 判断有没有code,有换取token,没有就获取授权
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxaf05346ece6ae430&redirect_uri=${href}&response_type=code&scope=snsapi_userinfo&state=#wechat_redirect

判断有没有code,有换取token,没有就获取授权
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxaf05346ece6ae430&redirect_uri=${href}&response_type=code&scope=snsapi_userinfo&state=#wechat_redirect
弹出授权类型 scope

37. vue3.2相关

组合式api
reactive 只能是对象
ref 对象,基本数据类型,数组props 接收
<script setup lang="ts">
defineProps<{title?: stringlikes?: number
}>()
</script>
props 抛出
<script setup lang="ts">
const emit = defineEmits<{(e: &apos;change&apos;, id: number): void(e: &apos;update&apos;, value: string): void
}>()
</script>计算属性没什么变化
const double = computed(() => count.value * 2)watch(() => data.name, (newVal, oldVal)=> {console.log(&apos;watch监听data.name的变化 newVal ------>&apos;, newVal);console.log(&apos;watch监听data.name的变化 oldVal ------>&apos;, oldVal);
});view icon text 

38. uni相关

页面的生命周期
1.onInit——监听页面初始化,其参数同 onLoad 参数,为上个页面传递的数据,参数类型为 Object(用于页面传参),触发时机早于 onLoad

2.onLoad——监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参),参考示例

3.onShow——监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面

4.onReady——监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发

5.onHide——监听页面隐藏

6.onUnload——监听页面卸载

7.onResize——监听窗口尺寸变化
页面跳转
uni.navigateTo({url: “/路径?参数=参数值”}) 只能打开非 tabBar 页面
uni.switchTab 只能打开 tabBar 页面

39. 在浏览器地址栏中输入地址后浏览器发生了什么?

DNS查询-把域名转换为ip
TCP连接-三次握手
发送HTTP请求
服务器处理HTTP请求
浏览器解析并渲染页面

相关文章:

2023前端面试整理

1. 介绍一下最近参与的项目,负责那些业务,在开发过程中遇到过问题吗&#xff1f;最后是咋样处理的&#xff1f; 之前负责过大小十几个项目&#xff0c;负责过浙里办的整套上架流程&#xff0c;负责过数据大屏统计&#xff0c;后台管理系统文书生成表单生成等&#xff0c;浙政钉…...

文化融合:TikTok如何弥合跨文化差异

随着全球化的加速和数字媒体的崛起&#xff0c;社交媒体平台已经成为连接世界各地人们的纽带。其中&#xff0c;TikTok作为一个引领者&#xff0c;正在以惊人的速度消除跨文化差异&#xff0c;促进文化融合&#xff0c;使人们更加了解和尊重不同背景和传统。 本文将深入探讨Ti…...

asp.net core获取config和env

配置文件的读取和使用 //读取配置文件直接使用 var configModel configuration.GetSection("DataBaseConfig").Get<DataBaseConfigModel>(); //读取配置文件注入到IOC中 services.Configure<AssemblyConfig>(configuration.GetSection("AssemblyC…...

Git不常用命令(持续更新)

今日鸡汤&#xff1a;当你最满足的时候&#xff0c;通常也最孤独&#xff1b;当你最愤慨的时候&#xff0c;通常也最可怜。 此博文会列出一些平时不常用&#xff0c;但是能提高效率的git命令&#xff0c;后续会出IDEA对应的操作步骤 快看看你是不是都用过... 分支&#xff08;…...

PostPreSql 数据库的一些用法

1、varchar 类型转换成数字 select sum(CAST(order_num AS NUMERIC)) from ads_port_cli_cons_freq_rpt where yr2023 and mon 08...

小工具推荐:FastGithub的下载及使用

前言&#xff1a;FastGithub是基于dotnet开发的一款开源Github加速器&#xff0c;通过自动获取与GitHub相关的IP地址并更新本地hosts文件来提高资源访问速度&#xff0c;使GitHub的访问畅通无阻。原理&#xff08;复制过来的&#xff09;&#xff1a; ①修改本机的DNS服务指向…...

硬件信息查看工具 EtreCheckpro mac中文版功能介绍

etrecheckpro mac中文版是一款专业的硬件信息查看工具&#xff0c;它能够快速的检测Mac电脑的软硬件信息&#xff0c;加强用户对自己计算机的了解&#xff0c;EtreCheckPro for Mac下载首先会对电脑的软硬件信息进行扫描收集&#xff0c;之后才会显示出来。EtreCheck Mac版报告…...

宝塔Python3.7安装模块报错ModuleNotFoundError: No module named ‘Crypto‘解决办法

前言 今晚遇到一个问题&#xff0c;宝塔服务器上安装脚本的模块时&#xff0c;出现以下报错&#xff0c;这里找到了解决办法 Traceback (most recent call last):File "/www/wwwroot/unifysign/fuck_chaoxing/fuck_xxt.py", line 4, in <module>from Crypto.…...

优化改进YOLOv5算法:加入ODConv+ConvNeXt提升小目标检测能力——(超详细)

为了提升无人机视角下目标检测效果,基于YOLOv5算法,在YOLOv5主干中实现了Omnidimensional Convolution(ODConv),以在不增加网络宽度和深度的情况下提高精度,还在YOLOv5骨干网中用ConvNeXt块替换了原始的C3块,以加快检测速度。 1 Omni-dimensional dynamic convolution …...

ElasticSearch安装、插件介绍及Kibana的安装与使用详解

ElasticSearch安装、插件介绍及Kibana的安装与使用详解 1.安装 ElasticSearch 1.1 安装 JDK 环境 因为 ElasticSearch 是用 Java 语言编写的&#xff0c;所以必须安装 JDK 的环境&#xff0c;并且是 JDK 1.8 以上&#xff0c;具体操作步骤自行百度 安装完成查看 java 版本 …...

JVM | 命令行诊断与调优 jhsdb jmap jstat jps

目录 jmap 查看堆使用情况 查看类列表&#xff0c;包含实例数、占用内存大小 生成jvm的堆转储快照dump文件 jstat 查看gc的信息&#xff0c;查看gc的次数&#xff0c;及时间 查看VM内存中三代&#xff08;young/old/perm&#xff09;对象的使用和占用大小 查看元数据空…...

SQL 表达式

SQL 表达式 表达式是计算值的一个或多个值、运算符和SQL函数的组合。这些SQL表达式类似于公式&#xff0c;它们是用查询语言编写的。 您还可以使用它们查询数据库中的特定数据集。 句法 考虑SELECT语句的基本语法&#xff0c;如下所示&#xff1a; SELECT column1, column2, …...

Unity3D 打包发布时生成文件到打包目录

有时候需要自己创建批处理文件或日志文件&#xff0c;在启动程序的同级目录使用&#xff0c;减少手动操作的时间和错误率。主要使用到的是OnPostprocessBuild方法。 1、在工程中的Editor文件夹下创建脚本 2、将文件放入Plugins的相关目录 3.脚本内容 using System.Collection…...

Elasticsearch中使用join来进行父子关联

在使用关系数据库进行开发的过程中&#xff0c;你可能会经常使用外键来表示父表和子表之间的关联关系&#xff0c;在Elasticsearch中&#xff0c;有哪些方法可以用来让开发者解决索引之间一对多和多对多的关联关系的问题呢 1 使用对象数组存在的问题 你可以很方便地把一个对象…...

提供一个springboot使用h2数据库是无法使用脚本并报错的处理方案

环境描述 springboot 2.6.2 mybatis-plus-boot-starter 3.5.1 mysql-connector-java 8.0.11 查阅了很多博客&#xff0c;说是使用spring.datasource.schema或者spring.sql.init.schema-locations指定脚本也均无效。不使用启动脚本&#xff0c;启动后在h2控制台&#xff…...

【组合计数】CF1866 H

Problem - H - Codeforces 题意 思路 不知道这种trick叫什么&#xff0c;昨天VP刚遇到过 设 f[x] 为恰好有一个最大值为 x 的方案数&#xff0c;我们要求这个&#xff0c;那就设 g[x] 为 至少有一个最大值为 x 的方案数&#xff0c;那么答案就是 f[x] g[x] - g[x - 1] 这里…...

JavaSpringbootmysql农产品销售管理系统47627-计算机毕业设计项目选题推荐(附源码)

摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用Java技术建设农产品销售管理系统。…...

一文5000字从0到1使用Jmeter实现轻量级的接口自动化测试(图文并茂)

接口测试虽然作为版本的一环&#xff0c;但是也是有一套完整的体系&#xff0c;有接口的功能测试、性能测试、安全测试&#xff1b;同时&#xff0c;由于接口的特性&#xff0c;接口的自动化低成本高收益的&#xff0c;使用一些开源工具或一些轻量级的方法&#xff0c;在测试用…...

蓝桥杯每日一题0223.10.23

第几天 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 简单枚举&#xff08;用k来记录经过的天数&#xff09; #include<bits/stdc.h> using namespace std; bool is_ren(int n) {if(n % 400 0 || (n % 4 0 && n % 100 ! 0))return true;return false; } int …...

php危险函数及rce漏洞

php代码执行语句 eval() eval()语句 eval() 会将符合PHP 语法规范字符串当作php 代码执行。 <meta charset"UTF-8"> <pre><?php$dd$_REQUEST[dd];eval($dd);?>可以执行php代码 也可以套一层system执行系统操作指令 assert()函数 assert() …...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

Monorepo架构: Nx Cloud 扩展能力与缓存加速

借助 Nx Cloud 实现项目协同与加速构建 1 &#xff09; 缓存工作原理分析 在了解了本地缓存和远程缓存之后&#xff0c;我们来探究缓存是如何工作的。以计算文件的哈希串为例&#xff0c;若后续运行任务时文件哈希串未变&#xff0c;系统会直接使用对应的输出和制品文件。 2 …...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...

基于Uniapp的HarmonyOS 5.0体育应用开发攻略

一、技术架构设计 1.混合开发框架选型 &#xff08;1&#xff09;使用Uniapp 3.8版本支持ArkTS编译 &#xff08;2&#xff09;通过uni-harmony插件调用原生能力 &#xff08;3&#xff09;分层架构设计&#xff1a; graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...