ms-前端八股文

1、暂时性死区

是指在 JavaScript 中使用 let 或 const 声明变量时,变量在其声明之前不能被访问或使用的特性。

var可以变量提升(在 JavaScript 中,变量声明提升是指在执行代码之前,变量声明会被提升到作用域的顶部。)

let 或 const 不能变量提升,提前打印会报错阻塞代码运行 

2、防抖与节流

3、关于面对后端给的上万张图片,我们如何进行最优处理

第一次只渲染10条,监听滚动事件,到达页面底部再渲染10条··········· 

4、vue的keep-alive生命周期函数  

4.1、

activated(组件激活时)            该钩子在服务器端渲染期间不被调用。

被 keep-alive 缓存的组件激活时调用。初始化操作放在actived里面

4.2、

deactivated(组件停用时)        该钩子在服务器端渲染期间不被调用。

被 keep-alive 缓存的组件停用时调用。在deactived里面,在里面进行一些善后操作

添加keep-alive标签后会增加activated和deactivated这两个生命周期函数,初始化操作放在actived里面,一旦切换组件,因为组件没有被销毁,所以它不会执行销毁阶段的钩子函数,所以移除操作需要放在deactived里面,在里面进行一些善后操作,这个时候created钩子函数只会执行一次,销毁的钩子函数一直没有执行。
 

5、CSR和SSR

CSR,即客户端渲染,数据的获取和加载都在客户端进行。而SSR则是服务端渲染,数据的获取和拼接都是在服务端进行,服务器直接返回拼接好的HTML文件,因此加载速度很快。CSR和SSR都各有优缺点。SSR对SEO更加友好,CSR反之;因为SSR到达的很快,因此不会有白屏问题,而CSR同样反之;SSR因为需要在服务端加载,因此会占用比较多的服务端资源,但CSR可以减少很多服务端资源的占用;在用户体验方面,CSR的页面跳转因为不是真正的跳转,因此会更加流畅,而SSR则是根据网络情况决定。总之,CSR和SSR都有它各自擅长的地方,如何选用主要根据具体的使用场景来决定。

6、同构渲染

同构渲染就是结合了CSR和SSR优势的一种渲染方式。同构渲染在首次渲染时与SSR是一样的,即直接返回静态HTML文件,但是有一点不同的是,同构渲染返回的文件中,不会包含已经处理好的数据。同构渲染返回的HTML文件中会包含link和script标签,浏览器在加载完这些标签后,会开始激活操作,此时,整个应用都会被CSR接管,作为CSR应用进行操作。

 7、大前端和前端的区别

  首先前端通常指的都是web前端,web前端的工作范围就是在web浏览器中,包括网站前端页面,web后端服务器开发或者从后端程序员处调用接口数据开发等等。

      而大前端涉及到的就比较多了,除了传统的web前端之外,还有其他PC界面,移动端,app,小程序等等显示界面都属于大前端开发的范畴。

8、模块化个人理解

常用es6模块化和require

模块化把相同代码进行提取,减少了代码冗余

实现了模块分类,提高了可维护性,达成按需引入的效果,增长了开发效率

问:模块化有哪几种标准?

答: 目前流行的js模块化规范有CommonJS、AMD、CMD以及ES6的模块系统

问:ES Modules 和 CommonJS的一些区别

答:

  1. 使用语法层面,CommonJs是通过module.exports,exports导出,require导入;ESModule则是export导出,import导入

  2. CommonJs是运行时加载模块,ESModule是在静态编译期间就确定模块的依赖

  3. ESModule在编译期间会将所有import提升到顶部,CommonJs不会提升require

  4. CommonJs导出的是一个值拷贝,会对加载结果进行缓存,一旦内部再修改这个值,则不会同步到外部。ESModule是导出的一个引用,内部修改可以同步到外部

  5. CommonJs中顶层的this指向这个模块本身,而ESModule中顶层this指向undefined

  6. CommonJS加载的是整个模块,将所有的接口全部加载进来,ESModule可以单独加载其中的某个接口

九、JS移动、复制DOM节点

可以看一下我的这篇文章(CSDN)

处理思路大概为将页面元素归为一个数组,通过下标置换来移动元素,复制元素则是在指定下标位置插入相同的值,页面重新渲染后就完成了移动复制页面元素的目的

十、闭包的写法

闭包闭包,老生常谈的闭包,内部函数访问外部函数的变量这个场景就是闭包,闭包的目的就是让内部函数访问外部函数的变量。

function createCounter() {let count = 0;return function() {count++;console.log(count);};
}const counter = createCounter();
counter(); // 输出:1
counter(); // 输出:2

十一、js将一个数组循环插入另一个数组(写起来跟轮播图似的,到达最后一个下标就从头开始)

      const imgUrlList=[require('@images/download.png'),require('@images/download-hover.png'),require('@images/cancel.png')];const videoOriginInfo=res.data.data;let indexNow=0;videoOriginInfo.forEach(a=>{if(indexNow!=this.imgUrlList.length){a.imgUrl=this.imgUrlList[indexNow];indexNow++;}else{indexNow=0;a.imgUrl=this.imgUrlList[indexNow];}})this.videoList = videoOriginInfo;

十二、webpack 热更新怎么知道模块文件改变的 

热更新原理很简单,就是每个文件都有独特的编码名,每次修改只需要检测到相应文件发生变化,更新文件名,实现热更新,项目运行中几乎无感刷新。

那webpack是通过啥检测的,chokidar库(https://github.com/webpack/webpack-dev-server/blob/2aed7625d92f0eedfb691a4e4cf602658469c758/lib/Server.js#L3018C31-L3018C39),vite也是用的这个

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

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

相关文章

scRAN-seq|加权最近邻分析(1)

概述 本文[1]介绍了Seurat 5.0.0中的加权最近邻(WNN)分析方法,这是一种用于整合和分析多模态单细胞数据的无监督框架。 简介 多模态分析作为单细胞基因组学的一个新兴领域,它通过同时测量多种数据类型来精确描绘细胞状态&#xff…

idea的后端环境配置

首先,在你刚打开idea时红色箭头所指的是你进行配置的地方,接下来我把具体步骤说一下 1,直接点击箭头所指的地方就会出现如图界面,然后点击Tomcat server,使其展开点击第一个 第二步取消勾选,第三步选择bin的上一级然后…

C++ | Leetcode C++题解之第10题正则表达式匹配

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isMatch(string s, string p) {int m s.size();int n p.size();auto matches [&](int i, int j) {if (i 0) {return false;}if (p[j - 1] .) {return true;}return s[i - 1] p[j - 1];};vector<…

启智社区昇腾算力快速使用 ATC

快速使用 ATC 本文将详细介绍如何借助启智社区昇腾算力 910/910B 进行模型转换&#xff0c;彻底告别开发板上模型转换各种报错的痛苦。 TODO&#xff1a; 完成数据集、模型存储教程 完成训练&模型转换教程 完成 ATC 其他功能教程 Fork 仓库 打开仓库点击右上角的派生按钮…

活动回顾丨掘金海外,探寻泛娱乐社交APP出海新风口

3月中旬,Flat Ads携手声网、XMP在广州成功举办“泛娱乐社交APP出海新风口——广州站”的主题线下沙龙活动。 多位大咖与泛娱乐社交APP赛道的行业伙伴汇聚一堂。本次活动邀请到Flat Ads 市场VP 王若策、声网娱乐视频产品负责人 陈际陶、XMP资深产品运营专家 屈俊星等多位行业大…

基于SpringBoot Vue员工管理系统

一、&#x1f4dd;功能介绍 基于SpringBoot Vue员工管理系统 角色&#xff1a;管理员、用户 管理员&#xff1a;管理员进入主页面&#xff0c;主要功能包括系统首页、个人中心、员工管理、部门管理、请假申请管理、出勤记录管理、奖惩信息管理、工资信息管理等进行操作。 员…

上位机图像处理和嵌入式模块部署(qmacvisual之plc通信)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 传统的非标自动化设备当中&#xff0c;plc发挥了很大的作用。这里面如何对这些电机和机构进行控制&#xff0c;大多数场景下用的就是plc设备了。目…

LeetCode 热题 100 | 贪心算法

目录 1 121. 买卖股票的最佳时机 2 55. 跳跃游戏 3 45. 跳跃游戏 II 4 763. 划分字母区间 菜鸟做题&#xff0c;语言是 C 1 121. 买卖股票的最佳时机 解题思路&#xff1a; 维护一个变量 max_pricemax_price 用于存储排在 i 天之后的股票最高价格第 i 天的最高利润 …

【前端面试3+1】08 css选择器、在前端页面展示后端传来的图片数组、请求方法的常见类型、【搜索插入位置】

一、css选择器有哪些&#xff1f; 1.元素选择器&#xff1a; 通过元素名称选择元素。 示例&#xff1a;p 选择所有段落元素。 2.类选择器&#xff1a; 通过类名选择元素。 示例&#xff1a;.btn 选择所有类名为 btn 的元素。 3.ID选择器&#xff1a; 通过id属性选择元素。 示例…

Copilot for Microsoft365使用心得

从去年3月份的发布到上周获得的体验名额&#xff0c;关注copilot已经超过了一年&#xff0c; 实际体验了一周觉得微软这款产品真的挺厉害的&#xff0c;至少在我认知里面确实可以减少很多的工作量&#xff0c;在此感谢陈老师公众号的体验卡的活动&#xff08;活动真实有效&…

Windows11下Docker使用记录(一)

Docker使用记录&#xff08;一&#xff09; 简单介绍Docker安装Docker 常用命令Docker 可视化Docker 使用GPU可视化rviz、gazebo 在进行ROS项目开发时&#xff0c;如果只有一台Windows电脑&#xff0c;我们可以考虑使用WSL或Docker来搭建ROS环境。在尝试了两种方式后&#xff0…

Tuxera NTFS for Mac2023绿色免费版 免费的ntfs for mac 免费读写硬盘U盘工具

Tuxera NTFS 2023 Mac免费版是款适合Mac用户使用的磁盘读写工具。Tuxera NTFS 2023 Mac可以很好的帮助用户在Mac上打开、编辑、复制、移动或删除存储在Windows NTFS格式的USB驱动器上的文件。并且Tuxera NTFS 2023 Mac还可以无阻碍地使用各种文件系统磁盘&#xff0c;还能解决磁…

WebAuthn:更好地保护线上敏感信息

1. 引言 2023年知乎博客 WebAuthn: 真正的无密码身份认证 总结得很赞。 在数字时代&#xff0c;密码已成为人们日常生活和在线活动中不可或缺的一部分。尽管互联网已经发展了 20 多年&#xff0c;许多方面都有了巨大的改进&#xff0c;但只有密码&#xff0c;还是 20 年前的用…

Python球球大作战

文章目录 写在前面球球大作战程序设计注意事项写在后面 写在前面 安装pygame的命令&#xff1a; pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame球球大作战 《球球大作战》是一款简单易上手、充满趣味性和竞技性的休闲手游。游戏的核心玩法可以用一句话概…

python数据分析和可视化【4】星巴克数据分析

有一组关于全球星巴克门店的统计数据directory.csv&#xff0c;分析了在不同国家和地区以及中国不同城市的星巴克门店的数量。 要求&#xff1a; &#xff08;1&#xff09;查看星巴克旗下有哪些品牌。如果我们只关心星巴克咖啡门店&#xff0c;则只需获取星巴克中Brand的数据集…

JUC:SimpleDateFormat的线程安全问题 以及 不可变类型DateTimeFormatter的使用

文章目录 不可变类SimpleDateFormat为什么不安全&#xff1f;解决 不可变类保证线程安全的实现 不可变类 SimpleDateFormat public static void main(String[] args) {SimpleDateFormat simpleDateFormat new SimpleDateFormat("yyyy-MM-dd");for (int i 0; i <…

二维码的生成、下载Java,并返回给前端展示

分析 将生成的二维码图片&#xff0c;以IO流的方式&#xff0c;通过response响应体直接返回给请求方。 第一、不需要落到我们的磁盘&#xff0c;操作在内存中完成&#xff0c;效率比较高。 第二、所有生成二维码的请求&#xff0c;都可以访问这里&#xff0c;前端直接拿img标…

Liunx进程信号

进程信号 进程信号什么是信号liunx信号种类 前后台进程前后台进程的概念 进程信号的产生键盘产生 阻塞信号信号的捕捉用户态和内核态 信号的捕捉函数 进程信号 什么是信号 信号是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知…

【MySQL】:深入解析多表查询(上)

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; MySQL从入门到进阶 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一. 多表关系1.1 一对多1.2 多对多1.3 一对一 二. 多表查询概述2.1 概述2.2 分类…

基于Springboot的航班进出港管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的航班进出港管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结…