![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
文章平均质量分 90
十一ge哆啦A梦
开始,坚持!
展开
-
(十七)JS篇——小题
CSP(Content-Security-Policy)是指内容安全策略。是一种网络安全机制,主要是为了保护网站不受跨站脚本攻击(XSS)等恶意代码的影响。它通过限制网页可以加载和执行的内容来防止恶意脚本的注入。本质是建立一个白名单,告诉浏览器哪些外部资源可以加加载和执行。我们只需要配置规则,如何拦截由浏览器自己实现。开启CSP有两种方式:①设置HTTP首部的Content-Security-Policy。原创 2024-04-25 11:03:34 · 662 阅读 · 2 评论 -
(十六)call、apply、bind介绍、区别和实现
函数中的this指向是在函数被调用的时候确定的,也就是执行上下文被创建时确定的。在一个执行上下文中,this由提供,由的方式来决定。原创 2024-04-19 18:14:55 · 1085 阅读 · 1 评论 -
(十五)前端性能优化
减少HTTP请求、缓存资源、压缩代码、无阻塞、首屏加载、按需加载、预加载、压缩图像、减少Cookie、避免重定向、异步加载第三方资源。转载 2024-04-16 17:24:03 · 68 阅读 · 0 评论 -
(十四)跨域的理解以及问题解决
浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。CORS(Cross-Origin Resource Sharing,跨域资源共享),允许浏览器向跨域服务器,发出XMLHttpRequest请求,从而克服了AJAX只能使用限制。①webpack代理配置,Vue脚手架创建的项目在vue.config.js文件配置以下代理。跨域请求会在正式通信之前,增加一次HTTP查询请求,称为"预检"请求(preflight)。CORS需要浏览器和服务器同时支持。原创 2024-04-12 18:00:28 · 605 阅读 · 0 评论 -
(十三)强缓存和协商缓存的区别
浏览器的缓存策略是指浏览器在加载页面时如何使用和管理缓存机制。可以提高网页加载速度,减轻服务器负载,并提供更好的用户体验。常用的缓存策略有两种:一种是发送请求,一种是不需要发送请求。强缓存和协商缓存。当浏览器第一次发送请求后,服务器会返回缓存标识,在http1.0使用expires,http/1.1时是cache-control。当浏览器需要使用资源的时候,会去查看文件缓存标识是否过期,如果没有过期就从缓存中获取资源。expires:规定一个缓存失效时间,过了这个时间,浏览器就需要重新发送请求获取资源。原创 2024-04-09 15:39:57 · 953 阅读 · 2 评论 -
(十二)v-model双向绑定原理、vue 的数据双向绑定原理
vue接收一个模板和data参数。vue解析模版的时候渲染视图,初始化对行的订阅者。遍历data数据的时候初始化发布者,利用Object.defineProperty函数在get 中触发订阅器中的添加订阅者方法。当数据更新的时候再set 函数中触发订阅器中的通知函数,通过订阅器的update 方法更新视图。原创 2024-04-03 16:05:44 · 3265 阅读 · 2 评论 -
(十一)虚拟DOM一定比真实DOM快吗
虚拟Dom(Virtual-dom简称vdom)通过使用js来模拟真实的dom。它可以让我们在js 中创建、更新和删除DOM元素。所以我们可以精准的改变我们需要改变的真实DOM,而不是每一次改变都改变整个DOM,从而减少DOM开销。另外,这种通过js来控制dom 的方式就可以实现数据来改变结构。原创 2024-04-02 16:26:18 · 1884 阅读 · 1 评论 -
(十)vue生命周期详解,以及父子组件生命周期的执行顺序
beforeCreate :此时new Vue()执行完,实例初始化完成,生命周期、事件初始化完成,但此时还不能访问data 和methodscreated :vue 实例创建,数据监听、计算属性、方法和事件/监听器都已配置完毕。此时可以访问data 和methods,但是页面还没有渲染出来,此时可以调用异步方法去获取数据。beforeMount:完成对dom的初始化,虚拟dom(内存中)已生成,但是还没有真是的dom,vue还没有挂载真实dom。此时页面上还看不到真实数据 只是一个模板页面而已。原创 2024-03-29 18:00:04 · 746 阅读 · 1 评论 -
(九)JavaScript的执行上下文
执行上下文,就是代码被解析和执行时所在环境的抽象概念。JavaScript 中运行任何代码都是在执行上下文中运行。由js 引擎自动创建的对象,包含对应作用雨中的所有变量属性。原创 2024-03-27 14:52:58 · 1104 阅读 · 0 评论 -
(八)作用域、作用域链、闭包
例如上述例子,理论上说,foo函数作用域隔绝了外部环境,所有变量引用都在函数内部完成,foo运行完成以后,内部的变量就应该被销毁的,但是因为使用了闭包,有一个全局作用域的变量test在引用foo内部的result函数,result函数引用始终为3,垃圾运行机制就无法把它销毁。所以闭包本身会造成内部变量常驻内存。原创 2024-03-13 16:20:16 · 376 阅读 · 0 评论 -
(七)原型、原型链
实例对象可以共享构造函数的属性和方法,节省内存。构造函数原型上的属性和方法越多,可共用性越大,节省内存越大。原创 2024-03-13 14:15:48 · 294 阅读 · 0 评论 -
(六)数据类型及其判断方法
对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,而变量保存的是指向对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,当通过其中一个变量修改对象的属性值时,另一个也会受到影响。检测当前实例是否属于这个类。instanceOf操作符会判断右边的值的prototype属性值是是否在左边值的原型链上,如果在返回true,否则返回false。js 中的变量都是保存在栈内存中,基本数据类型的值直接在栈中存储,值与值之间都是独立存在的,修改一个变量不会影响到其他的变量。原创 2024-03-12 17:24:58 · 889 阅读 · 1 评论 -
(五)深浅拷贝的理解
赋值的和被赋值的互不影响;浅拷贝赋值的是被复制数据或者对象的引用,复制的数据或对象通过引用指向被复制数据或者对象引用所指向的值。而当我们a[0]=1时进行数组修改时,由于a与b指向的是同一个地址,所以自然b也受了影响,这就是所谓的浅拷贝了。那,要是在堆内存中也开辟一个新的内存专门为b存放值,就像基本类型那样,岂不就达到深拷贝的效果了。bb.通过JSON对象来实现深拷贝。原创 2024-03-11 18:23:20 · 359 阅读 · 0 评论 -
(四)vue2与vue3的区别
vue2:vue2是把数据放入data中,在vue2中定义数据变量是data(){} ,创建的方法要在methods:{} 中。vue3:,vue3就需要使用一个新的setup()方法,此方法在组件初始化构造的时候触发。使用以下三个步骤来建立反应性数据:从vue引入reactive;使用reactive() 方法来声明数据为响应性数据;使用setup()方法来返回我们的响应性数据,从而template可以获取这些响应性数据。转载 2024-03-11 16:59:36 · 40 阅读 · 0 评论 -
(三)Promise对象理解、方法汇总
Promise简单说就是一个容器,里面保存这未来才会结束的事件(通常是一个异步操作的结果)原创 2024-03-08 17:42:32 · 931 阅读 · 1 评论 -
(二)Promise
1、JavaScript引擎总是会先执行同步代码,然后再执行异步代码(同步先行,异步靠后)3、微任务可以在Event Loop中插队。script是脚本,这被当作是一个宏函数。1、为什么说script是一个宏任务?2、宏任务与微任务的理解和差异。2、微任务的优先级高于供任务。3、宏任务与微任务产生的误差。4、通过一个例子加深了解。4、所有新添加的微任务。原创 2024-03-07 18:22:23 · 482 阅读 · 1 评论 -
(一)一个页面从输入 URL 到加载完成,这个过程发生了什么?
(2)DNS预获取(DNS Prefetch)(1)减少DNS请求次数。原创 2024-03-06 17:11:04 · 173 阅读 · 1 评论