前端面试题整理2

news2024/11/26 14:40:43

目录

1.讲解es6新增map和set?

2.Ts的枚举和元组是什么?

3.vue3中的beforeEnter钩子函数怎么用?

4.获取数据时,加载loading动画,在哪取消比较好Diff算法的优化在哪?

5.Jq中的$(this)和this的区别?

6.什么是回流什么是重绘?

7.Var let const的区别?

8.父组件如何调用子组件的方法?

9.什么是闭包?使用闭包的时候需要注意什么?闭包的原理是什么?

10.小程序的上拉加载、下拉刷新怎么实现,如果使用纯js怎么实现?

11.Watch和watchEffect的区别?

12.什么是怪异盒子模型和标准盒子模型?

13.Git常用命令有哪些?

14.vue项目自定义指令鉴权怎么实现的?

15.Cookie和session的区别?

16.For in 和for of的区别?

17.Vue和react的区别?

18.项目中状态码怎么处理?

19.Vue中setup使用语法糖和不使用的区别?

20.map和foreach的区别?


1.讲解es6新增map和set?

①set指的是“集合”数据结构,map指的是“字典”数据结构;

②set是以“[value,value]”形式存储元素,map是以“[key,value]”形式存储元素;

③set不能通过键查找特定值,而map可用get()通过键查找特定值并返回。

2.Ts的枚举和元组是什么?

枚举(enum):是对javascript标准数据类型的一种补充,可以通过属性获取值,也可以通过索引。

元组(tuple) :它允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。

3.vue3中的beforeEnter钩子函数怎么用?

beforeEnter路由独享守卫,可以在路由进入之前进行一些校验操作。

4.获取数据时,加载loading动画,在哪取消比较好Diff算法的优化在哪?

        加载loading动画一般在发起请求时就开始显示,在数据加载完成后再隐藏。如果是通过异步请求获取数据,在异步请求的回调函数中隐藏loading动画,这样可以确保数据已经加载完成。

        Diff算法的优化,可以从以下几个方面入手:

1.减少比较的次数:在数据更新时,对比前后两个数据是否一致,如果一致则不进行比较。

2.缓存结果:可以将比较的结果缓存在内存中,下次比较时直接读取缓存结果,避免重复比较。

3.分片比较:将大型数据拆分成多个小的数据块进行比较,这样可以将比较的时间降到最低。

5.Jq中的$(this)和this的区别?

this表示当前的上下文对象是一个html DOM对象,可以调用html对象所拥有的属性和方法。

$(this)表示的上下文对象是一个jQuery的上下文对象,可以调用jQuery的方法和属性值。

6.什么是回流什么是重绘?

回流:DOM树中的元素被增加或删除,导致浏览器需要重新去渲染整个DOM树,这个过程叫做回流。

重绘:DOM树中没有元素被增加或删除,只是样式的改变,针对浏览器对某一元素进行单独的渲染,这个过程叫做重绘。

回流比重绘更消耗性能,回流必然导致重绘,但重绘不一定导致回流。

7.Var let const的区别?

①变量提升:var声明的变量存在变量提升,let和const不存在变量提升,即它们所声明的变量必须在声明后使用,否则报错。

②块级作用域:var不存在块级作用域,let和const存在块级作用域。

③重复声明:var允许重复声明,let和const在同一作用域下不允许重复声明。

④修改声明的变量:var和let可以修改,const声明的是一个只读常量,一旦声明,常量的值就不能改变,但对于对象和数据这种引用类型,内存地址不能修改,里面的值可以修改。

⑤初始值设置:var和let可以不用设置初始值,const必须设置初始值。

8.父组件如何调用子组件的方法?

①通过ref直接调用子组件的方法;

②通过组件的$emit、$on方法。

9.什么是闭包?使用闭包的时候需要注意什么?闭包的原理是什么?

闭包:在一个函数内部创建另一个函数。把内嵌的函数称为闭包,它可以访问外部函数的局部变量。

注意:①闭包可以访问外部函数的变量,但是不能修改外部函数的变量,因为外部函数的变量仅在外部函数的作用域中可见。

②闭包中引用的变量会一直存在于内存中,直到闭包被销毁。

③闭包可以访问外部函数的参数,但是需要注意参数的作用域问题。

        闭包的原理是在函数执行完毕之后,函数的作用域和作用域链不会被销毁,而是被保存下来,以供内部函数使用。当内部函数访问外部函数的变量时,会从作用域链中查找该变量,如果找到则使用,否则会向上一级作用域链继续查找,直到找到为止。因此,闭包可以在函数执行完毕后仍然访问到外部函数的变量。

10.小程序的上拉加载、下拉刷新怎么实现,如果使用纯js怎么实现?

小程序的上拉加载、下拉刷新可以通过小程序提供的组件和API来实现。

①上拉加载: 使用 onReachBottom 事件,在页面滚动到底部时触发加载更多的数据。在触发事件时,可以调用数据加载的方法,例如请求接口获取数据并渲染到页面中。

②下拉刷新: 使用 onPullDownRefresh 事件,在用户下拉页面时触发刷新操作。在触发事件时,可以调用数据刷新的方法,例如重新请求接口获取最新的数据并渲染到页面中。刷新完成后,需要调用 wx.stopPullDownRefresh() 结束刷新状态。

如果要使用纯js来实现上拉加载、下拉刷新,可以通过判断滚动距离和下拉距离来触发对应的事件,然后通过js操作DOM来更新页面数据。

11.Watch和watchEffect的区别?

①执行机制:watchEffect是立即执行,而watch不会立即执行;

②参数不同:watchEffect只需要传递一个回调函数,而watch至少要有两个参数;

③结果不同:watchEffect只能获取到新值,而watch可以同时获取新值和旧值。

12.什么是怪异盒子模型和标准盒子模型?

怪异盒子模型:width(border+padding+width)+margin

标准盒子模型:width+border+padding+margin

13.Git常用命令有哪些?

git init:初始化一个git仓库

git clone:clone一个git仓库

git config:配置信息

git add:添加文件到缓存命令

git status:查看文件的状态命令

git diff:查看更新的详细信息命令

git commit:提交命令

git reset HEAD:取消缓存命令

git rm:删除命令

git mv:移动或重命名命令

14.vue项目自定义指令鉴权怎么实现的?

使用directive方法

在vue2项目中 src/directives/index.ts 

import Vue from 'vue';
import store from '@/store';
export default function directive() {
    Vue.directive('auth', {
        inserted: (el, binding) => {
            if (!store.state.buttons.has(binding.value)) {
                el.remove();
            }
        }
    });
}

在main.ts中全局注册:
import directive from './directives';
Vue.use(directive);

在vue文件中使用:
<el-button  v-auth="'system:role:insert'">新增</el-button>
在vue3项目中 src/directives/index.ts

import { App } from "vue";
import { useStore } from "vuex";
import createStore from "@/store";
const list = createStore.state.buttons;
// 自定义指令,用于判断按钮权限
export default function directive(app: App) {
    app.directive("auth", {
        created: (el, binding) => {
            if (!list.has(binding.value)) {
                el.remove();
            }
        },
    });
    app.directive("bgColor", {
        beforeMount: (el, binding) => {
            el.style.backgroundColor = binding.value;
        },
    });
}
其他如上。

15.Cookie和session的区别?

①存储位置不同:cookie存放在本地,而session存放在服务器上;

②存储容量大小不同:cookie存储的容量较小,一般<=4KB,而session存储容量大小没有限制;

③存储有效期不同:cookie可以长期存储,但可以设置时间。session在超过一定的操作时间(通常为30分钟)后会失效;

④安全性不同:cookie安全性较低,而session安全性较高;

⑤域支持范围不同:cookie支持跨域名访问,而session不支持跨域名访问;

⑥存储的数据类型不同:cookie中只能保管ASCII字符串,而session中能够存储任何类型的数据。

16.For in 和for of的区别?

①for..in遍历的是数组中每项元素对应的索引,for..of遍历的是每一项元素的值;

②for..in可以遍历对象、数组,for..of只能遍历数组;

③for..in是ES5的语法,for..of是ES6的语法。

17.Vue和react的区别?

共同点:数据驱动视图,组件化,都使用 Virtual DOM

不同点:①vue支持双向绑定,而react是单项数据流;

②vue通过比较虚拟DOM的差异进行部分更新,而react被改变时全部更新;

③vue是通过一种拓展的HTML语法进行渲染,而React是通过JSX渲染模板;

④Vue需要通过mixins来扩展,而React可以通过⾼阶组件(HOC)来扩展;

⑤Vue通过 getter/setter以及一些函数的劫持能精确知道数据变化,而React通过比较引用的方式(diff)进行的;

⑥ 构建Vue项目使用vue-cli,而构建React项目使用Create React APP。

18.项目中状态码怎么处理?

在响应拦截器中进行处理,根据不同的状态码触发不同的弹框。

 200成功 304以缓存不再响应数据 301永久重定向 302临时重定向 404未找到资源或请求出错 500服务器错误

19.Vue中setup使用语法糖和不使用的区别?

20.map和foreach的区别

forEach()方法返回undefined ,而map()返回一个包含已转换元素的新数组。

②map处理速度比forEach快,而且返回一个新的数组,方便链式调用其他数组新方法,比如filter、reduce。

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

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

相关文章

单片机--STM32

【1】课程回顾 【2】课程介绍 1.单片机简介 单片机是单片微型计算机的简称&#xff0c;Mcu是Microcontroller的简称&#xff0c;也就是嵌入式微控制器。采用集成电路技术将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、定时器/计时器、多种I/O口和中断系统…

P1772 [ZJOI2006] 物流运输

题目提供者 洛谷 难度 提高/省选- 题目描述 物流公司要把一批货物从码头 A 运到码头 B。由于货物量比较大&#xff0c;需要 n 天才能运完。货物运输过程中一般要转停好几个码头。 物流公司通常会设计一条固定的运输路线&#xff0c;以便对整个运输过程实施严格的管理和跟…

20230516使用python3确认三门问题

最烧脑的悖论&#xff0c;意识为什么会影响未来&#xff1f;颠覆你认知的三门问题播报文章 小红虾实验室 2023-04-09 06:08 四川 好看视频优创联盟,优质科学领域创作者 关注 对于懂概率的人来说&#xff0c;他中大奖的概率将成倍增加&#xff0c;甚至获奖率能够达到100%。 今…

【量化交易笔记】6.布林带的实现

上一讲介绍A股移动平均值&#xff08;MA&#xff09;指标&#xff0c;本讲我们来讲解布林布的实现。 布林线&#xff08;BOLL&#xff09;技术指标简介 布林线&#xff08;Bollinger Bands&#xff0c;BOLL&#xff09;又称布林带&#xff0c;是约翰布林&#xff08;John Bol…

dbForge Studio for SQL Server Crack

dbForge Studio for SQL Server Crack 增加了对源代码管理中的数据操作语言(DML)触发器排序的支持。 添加了对不使用EXEC/EXECUTE关键字调用过程/函数的语法支持。 在语法检查中添加了对EXEC命令的支持。 dbForge Studio for SQL Server是一个IDE&#xff0c;用于SQL Server中的…

抖音本地生活服务商贴牌小程序

作为社交电商平台的一部分&#xff0c;抖音本地生活服务的市场前景非常广阔。以下是抖音本地生活服务商市场前景的几个方面&#xff1a; 巨大的用户群体&#xff1a;抖音拥有数亿的用户&#xff0c;这些用户中有很多人需要本地生活服务&#xff0c;如美食、酒店、旅游等&am…

对话三维家创始人蔡志森:AIGC让家装从“填空题”变成了“选择题”

&#xff08;图片来源&#xff1a;Pixels&#xff09; 三维家讲透了一个道理&#xff1a;数字化企业如何利用已有优势构建AGI能力。 数科星球原创 作者丨苑晶 编辑丨大兔 AIGC火热半年有余&#xff0c;人们已对ChatGPT不再陌生。 从互联网巨头再到上一代AI企业&#xff0c;…

TiKV 新架构:Partitioned Raft KV 原理解析

作者&#xff1a;徐奇 TiKV 推出了名为“partitioned-raft-kv”的新实验性功能&#xff0c;该功能采用一种新的架构&#xff0c;不仅可以显著提高 TiDB 的可扩展性&#xff0c;还能提升 TiDB 的写吞吐量和性能稳定性。 在上一篇文章中&#xff0c;我们介绍了 Partitioned Raf…

就业内推 | 中国移动招网工,有云计算认证的看过来

01 中移集成 &#x1f537;招聘岗位&#xff1a;云网络工程师 &#x1f537;职责描述&#xff1a; 1、具有云网项目售前工作经验&#xff0c;精通云网络架构和技术原理&#xff1b;熟悉国内主流云厂商阿里云、腾讯云等整体架构和产品体系。 2、具备一定的云网项目交付能力&…

【追梦之旅】——栈居然还能这样玩?!+ 力扣 - 有效括号

【追梦之旅】——栈居然还能这样玩&#xff1f;&#xff01; 力扣 - 有效括号 ~&#x1f60e; 前言&#x1f64c;什么是栈&#xff1f;栈的C语言实现头文件编写源码&#xff1a;功能文件编写源码&#xff1a;测试文件编写源码&#xff1a; 力扣题解——有效的括号 总结撒花&…

从C出发 33 --- 自定义数据类型(中)

struct 结构体类型的本质是 数据类型 &#xff0c;既然是数据类型&#xff0c;就是用来创建变量&#xff0c;而创建的这个变量其实是 变量的集合&#xff0c;是结构体里面成员变量的集合 struct Test {int a,b;}; struct Test tt.a 1; t.b 2;//意味着&#xff0c;结构体变…

数据结构学习记录——图的遍历(深度优先搜索、广度优先搜索、为什么需要两种遍历、图不连通怎么办)

目录 深度优先搜索 概念 图解过程 伪代码 时间复杂度 具体代码&#xff08;C语言&#xff09; 广度优先搜索 概念 图解过程 伪代码 时间复杂度 具体代码&#xff08;C语言&#xff09; 为什么需要两种遍历 图不连通怎么办 连通 路径 回路 连通图 连通…

FreeRTOS(2)----任务管理

一&#xff0c;任务的基本概念 FreeRTOS是一个支持多任务的操作系统&#xff0c;多个任务可以共享一个优先级&#xff0c;当任务configUSE_TIME_SLICING 为 1&#xff0c;则可以使用时间调度的方式共享处理器。 简而言之&#xff0c;freertos任务就是一系列任务的集合。 二&…

day05_Java中的运算符

在Java中提供了丰富的运算符 其按照功能分&#xff1a;算术运算符、赋值运算符、比较运算符、逻辑运算、条件运算符按照操作数个数分&#xff1a;一元运算符&#xff08;单目运算符&#xff09;、二元运算符&#xff08;双目运算符&#xff09;、三元运算符 &#xff08;三目…

python 元类

目录 元类type介绍使用元类创建类直接使用type继承type 类和对象的创建过程元类有什么用使用元类实现一个单例模式 元类type介绍 我们知道在python中一切皆对象&#xff0c;即使是类&#xff0c;也是对象&#xff0c;那么类这个对象是的类是谁呢&#xff1f;那就是元类。 通过…

Autosar NM网络管理机制(三大三小模式切换、NM网络报文的帧格式解析、NM中用到的定时器配置)

网络管理机制 AUTOSAR网络管理机制其实十分简单&#xff0c;概括下来三句话&#xff1a; 需要通信就发网络报文&#xff0c;否则就停发网络报文&#xff0c;所有节点同睡同醒。 下图是网络管理的状态机&#xff1a; 网络管理包括三个模式&#xff1a;Network Mode、Prepare …

【指针初阶 2023516】

#include <stdio.h>int main() {int a 100;int * pa &a;//pa是专门用来存放地址&#xff08;指针&#xff09;的&#xff0c;这里的pa就被称为指针变量char* pc &a;//指针变量在32为平台下是4个字节//指针变量在64为平台下是8个字节//int arr[10];//printf(&q…

计算机图形学-GAMES101-3

一、transformation-变换 &#xff08;1&#xff09;Scale 缩放变换示意图 图形每个像素对应坐标的计算公式 写成缩放矩阵的形式 非均匀缩放 &#xff08;2&#xff09;Reflection Matrix 镜面变换示意图 图形每个像素对应坐标的计算公式 写成镜像矩阵的形式 …

阿里HR:年轻人你把握不住.....

前言 去阿里面试测试工程师&#xff0c;这里面水太深&#xff0c;什么未来规划&#xff0c;职业发展的东西都是虚拟的&#xff0c;作者还太年轻&#xff0c;没有那个经历&#xff0c;把握不住。项目只有几个&#xff0c;开心快乐就行&#xff0c;不PK&#xff0c;文明PK。 很…

文心一言 VS chatgpt (17)-- 算法导论4.1 3~4题

三、在你的计算机上实现最大子数组问题的暴力算法和递归算法。请指出多大的问题规模n0是性能交叉点一一从此之后递归算法将击败暴力算法?然后&#xff0c;修改递归算法的基本情况一一当问题规模小于 n0 时采用暴力算法。修改后&#xff0c;性能交叉点会改变吗? 文心一言&…