js
文章平均质量分 89
weixin_42936434
这个作者很懒,什么都没留下…
展开
-
前端项目上线后,浏览器缓存未刷新问题
http的缓存机制是一种优化策略。但也会出现文件变动后浏览器没有更新的问题。综上,入口文件不缓存或采用协商缓存,其他静态资源使用强缓存,url拼接hash值或者打包时给文件名加上hash值。原创 2023-03-07 21:52:58 · 5153 阅读 · 0 评论 -
【Vue源码分析——nextTick的使用及实现源码】
在开发中,也会遇到用nextTick的情况,面试中也经常考到。因此,总结了下nextTick的使用及实现原理。 {原创 2022-11-26 14:04:51 · 513 阅读 · 0 评论 -
【JS执行机制——事件循环机制】
JS是一门单线程语言,那就意味着一次只能执行一个任务且按顺序执行。如果有耗时任务,也必须等着它执行完了才能执行下一个任务。问题来了,浏览网页的时候,某个高清图片需要加载很久,那网页岂不是卡着等图片加载完才能做别的操作?显然不是这样的,JS设计者设计了一种执行机制:事件循环机制(Event Loop),以实现单线程非阻塞的方法。通过上文,了解到事件循环机制(Event Loop)是用来实现单线程非阻塞的一种机制。我们先了解下任务。原创 2022-11-26 14:00:04 · 492 阅读 · 0 评论 -
工作记录——操作DOM
文档对象模型(DOM,Document Object Model),表示由多层节点构成的文档,通过它可以增删改查页面的各个部分,以及修改一些属性、事件操作等。1、我们获取过来的DOM元素是一个对象,所以DOM又称作文档对象模型;2、对于HTML,DOM使得HTML形成一棵dom树,包含文档,元素,节点3、对于dom操作,主要是对于元素的操作,主要有创建,增,删,改,查,属性操作,事件操作参考:《JavaScript高级程序设计》、操作DOM总结(博客园)原创 2022-11-12 16:32:22 · 176 阅读 · 0 评论 -
【vue源码学习】——模板编译
Vue.js提供了模板语法,允许我们声明式地描述状态和DOM之间的绑定关系,通过模板来生成真实DOM并将其呈现在用户界面上。在底层实现上,Vue.js会将模板编译成虚拟DOM渲染函数。当应用内部的状态发生变化时,Vue.js结合响应式系统,聪明地找出最小数量的组件进行重新渲染以及最少量地进行DOM操作。原创 2022-10-30 23:31:48 · 298 阅读 · 0 评论 -
Vue源码学习(三):虚拟DOM
虚拟DOM是随着时代发展的产物。早期,页面交互效果比较简单,无复杂状态管理,无需频繁操作DOM,使用jQuery开发即可。随着需要越来越复杂,操作DOM越来越频繁。用jQuery开发,那会有相当多的代码操作DOM,状态也很难管理。现在,Vue.js、Angular和React都是声明式操作DOM。即通过描述状态(变量)和DOM直接的映射关系,就可以将状态渲染成视图。不用手动操作DOM。而当状态发生改变时,DOM要重新渲染,这时如果渲染整个DOM无疑是浪费了一些性能。原创 2022-10-16 22:07:28 · 555 阅读 · 2 评论 -
Vue源码学习(二):Object的变化侦测
Object 和Array的变化侦测采用不同的处理方式(后面会解释原因),这一篇将介绍Object的变化侦测。Vue.js会自动通过状态生成DOM,并将其输出到页面显示出来,这个过程叫渲染。通常,在运行时应用内部的状态会不断发生变化,此时需要不停地重新渲染。那如何知道状态发生变化了呢,变化侦测就是用来追踪状态变化的,一旦变化,就重新更新视图。变化侦测有两种类型,一种是“推”,一种是“拉”。原创 2022-10-15 17:03:47 · 274 阅读 · 0 评论 -
TypeScript学习——语法篇
TS数字类型有字符串、布尔值、数字等,通过这些基础类型可以组合出复杂的类型组合,并且可通过type和interface关键字定义复杂对象类型和函数的类型。原创 2022-08-31 23:23:32 · 855 阅读 · 1 评论 -
【JavaScript——手写call、apply、bind】
当函数调用时,会创建执行上下文,this时上下文的一个属性,在函数执行时会用到。this有四种绑定方式默认绑定、隐式绑定、显示绑定、new绑定。显示绑定时,会用到call()、apply()、bind()函数,那这些函数是怎么实现的呢?让我们手写一下把。this全面解析call()函数和apply函数含义一样,第一个参数都是传递this,不同的地方在于后面的参数形式,前者一个一个传,后者以数组的方式传递。它们调用之后会立即执行。......原创 2022-07-31 18:16:29 · 185 阅读 · 0 评论 -
【JavaScript——this全面解析】
this是在运行时绑定的,并不是编写时绑定的,它的上下文取决于函数调用时的各种条件。this的绑定和函数声明的位置么有任何关系,只取决于函数的调用方式。当一个函数被调用时,会创建一个活动记录(有时候也称为执行上下文)。这个记录会包含函数在哪里被调用(调用栈)、函数的调用方式、传入的参数等信息。this就是这个记录的一个属性,会在函数执行的过程中用到。当函数调用时,会创建执行上下文,this时上下文的一个属性,在函数执行时会用到。this有四条绑定规则,分别是默认绑定、隐式绑定、new绑定、显示绑定。....原创 2022-07-31 18:10:32 · 164 阅读 · 0 评论 -
【JavaScript——原型、原型链、继承】
早期的浏览器只能用来浏览,不能交互,校验的工作留给后台报错。但是这样很消耗性能,于是,JavaScript需要完成一些更复杂的工作。当时流行面向对象,Javascript设计者仿造Java设计继承,但是设计成像java一样的继承,会增加学习成本,让语言过重。Java等语言继承最终new的是构造函数,于是Js借鉴了这一思路。在Javascript语言中,new命令后面跟的不是类,而是构造函数。通过构造函数实现继承,无法共享属性和方法。每一个实例,都有自己的属性和方法的副本,这会造成资源浪费。......原创 2022-07-24 16:13:24 · 394 阅读 · 2 评论 -
深入理解ES6——迭代器与生成器
深入理解ES6——迭代器与生成器文章目录深入理解ES6——迭代器与生成器前言一、什么是迭代器二、什么是生成器三、可迭代对象和for-of循环(1)如何访问默认的迭代器?(2)创建自己的可迭代对象四、内建迭代器(1)集合对象迭代器(2)字符串迭代器(3)NodeList迭代器五、展开运算符与非数组可迭代对象六、高级迭代器(1) 给迭代器传递参数(2)在迭代器中抛出错误(3)生成器返回语句(4)委托生成器七、异步任务执行总结前言1、用循环语句迭代数据时,必须要初始化一个变量来记录每次迭代在数据集合中的原创 2022-05-29 01:04:48 · 116 阅读 · 0 评论 -
【深入理解es6——js中的类】
深入理解es6——js中的类文章目录深入理解es6——js中的类一、类由来、es5的类二、类声明三、类表达式四、作为一等公民的类五、访问器属性六、可计算成员名称、生成器方法七、静态成员八、继承与派生类extend和super类方法遮蔽静态成员继承派生自表达式的类内建对象的继承Symbol.species属性九、在类的构造函数中使用new.target总结一、类由来、es5的类java、c++等面向对象的语言支持类和类继承,但是js(基于对象)不支持,只能关联多个对象。直到es5出现近类结构,但写法或原创 2022-05-08 16:29:11 · 276 阅读 · 1 评论 -
【JS深拷贝与浅拷贝】
前言写代码时,经常会遇到将一个对象赋值给另一个对象的情况,比如:const obj1 = { a: 1}const obj2 = obj1;obj2.a = 2;console.log(obj1) // {a:2}但是对于引用类型而言,直接赋值(=),实际上是保存在栈内存中地址的赋值,指向的依然是同一个对象,但实际上我们并不想共享一个对象。我们可以用深拷贝和浅拷贝来解决这个问题。一、浅拷贝?浅拷贝就是只拷贝一层属性,不会递归赋值,而在浅拷贝之后,源对象与目标对象的引用已经不是同原创 2022-04-23 19:07:54 · 1036 阅读 · 1 评论