- 博客(86)
- 收藏
- 关注
原创 js垃圾回收机制大概介绍:
js是单线程,遇到垃圾回收机制就会全停顿,所以浏览器做了优化,实现多线程并行回收,但是依然阻塞js执行,所以又诞生了增量标记,分段执行垃圾回收,交叉执行。回收策略:引用计数法和标记清除法。
2023-07-04 11:56:14
228
原创 页面呈现过程
输入url,解析url信息—>判断强缓存还是协商缓存—>dns域名解析—>TCP三次握手建立连接—>客户端发送http请求,如果是https则涉及加解密流程—>服务器处理请求并返回http资源—>TCP四次握手断开连接—>浏览器拿到资源之后渲染页面,涉及回流和重绘,同时加载js的时候涉及js执行机制。
2023-07-04 11:31:23
228
原创 闭包的大概概念:
面试问你就说:内部访问外部,好处是防止垃圾回收机制,坏处就是容易造成内存泄露,只要有这个好处就一定有这个坏处,所谓防止被回收就是一直可用,所谓内存泄露就是后来没用过,但是一直被保存,导致内存一直占用。闭包本质就是:嵌套的内部函数使用了外层函数的变量,这个被使用的变量就不会被GC(垃圾回收),而是持久化在内存中(会造成内存泄漏风险)。因此,每次调用内部函数 都可以操作这个变量。
2023-07-03 00:31:29
294
原创 前端面试题(2)
在一般情况下,我们不需要特别的去声明它,但有时候遇到继承的情况,我们不愿意见到元素所继承的属性影响本身,从而可以用Position:static取消继承,即还原元素定位的默认值。A.absolute的元累,如果它的父容器设曾了position属性,并且position的属性值为absolute 或者relative那么就会依据父容器进行停移;B.reiative 元素以它原来的位置为基准偏移,在其移动后,原来的位置不再占据空间。D. 引用类型的赋值只会复制指针,复制后的变量和复制前的变量都指向同一个对象。
2023-06-14 12:14:56
813
原创 基础数据类型存放在栈中,引用数据类型存放在堆
说到这里,大家应该也差不多明白为何基本数据类型存放在栈中,引用数据类型存放在堆中了。但是事实上,并非所有情况都如此。当我们使用了闭包的时候,JavaScript 引擎会沿着“当前执行上下文–>foo 函数闭包–> 全局执行上下文”的顺序来查找变量,而这一变量(不管是基本数据类型还是引用数据类型)也会被存到[[scope]]中,然后将其放到堆内存里面去。这也是可以理解的,就跟为什么引用数据要存放到堆中一样,是为了避免这些存储的数据在栈中影响到执行栈的执行,为了让js更加的高效。
2023-06-13 23:55:29
860
原创 this指向:
指向当前定义时所在的对象。箭头函数的this指向在被定义的时候就确定了,之后永远都不会改变。即使使用call()、apply()、bind()等方法改变this指向也不可以。如果父级作用域还是箭头函数,就再往上找,一层一层的直到直到this的指向。
2023-06-11 02:20:03
510
原创 AJAX:
AJAX 全称为,就是异步的 JS 和 XML。通过 AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。注意:XML 可扩展标记语言,被设计用来传输和存储数据。XML 和 HTML 类似,不同的是 HTML 中都是预定义标签,而 XML 中没有预定义标签,全都是自定义标签,用来表示一些数据。现在已经被json取代。比如说我有一个学生数据:name = "孙悟空";age = 18;
2023-06-09 02:31:35
939
原创 VUE3核心知识(待自己补充):
👉尚硅谷pink老师的xmind图目录简介:创建工程:API风格:setup:响应式数据:计算和监视:对比vue2和vue3的响应式原理:自定义hooks:props:生命周期的改变:新的组件:其他: Proxy文档:Proxy - JavaScript | MDNReflect文档:Reflect - JavaScript | MDN
2023-05-31 23:56:54
75
原创 Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again
解决办法👉。
2023-05-26 15:22:18
174
原创 Vue主要用到的模式:
在不改变对象自身的基础上,在程序运行期间给对象动态的添加职责;若直接修改函数体,则违背了’开放封闭原则’,也违背了我们的’单一职责原则’;简单的说就是允许向现有的函数添加新的功能,同时不改变其结构。:工厂模式是用来创建对象最常见的一种设计模式。不必暴露构造函数的具体逻辑,而是将逻辑封装在一个个函数之中,那么这个构造函数就可以被看做工厂。一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得将得到通知;: 就是定义一系列的算法,把他们一个个封装起来,并且使他们可以相互替换。
2023-05-23 12:44:06
256
原创 vuex中this.$store.commit和this.$store.dispatch的用法
👉相同:都是传值给vuex的mutation改变state。
2023-05-23 12:38:52
1777
原创 前端Vue:权限管理,给角色分配权限
前端权限的控制本质上来说, 就是控制前端的 视图层的展示和前端所发送的请求。前端权限的实现必须要后端提供数据⽀持, 否则⽆法实现。返回的权限数据的结构,前后端需要沟通协商, 怎样的数据使⽤起来才最⽅便.权限的数据需要在多组件之间共享, 因此采⽤vuex防⽌刷新界⾯,权限数据丢失, 所以需要存储在, 并且要保证两者的同步。
2023-05-23 12:20:35
5070
原创 vue递归函数|树形结构或权限
需求是:三级联动数据,获取到的数据也是树形结构的,需要不停的往下循环,但是又不确定是几层,那么这样需要用到递归方法。
2023-05-23 02:59:35
535
原创 vue递归函数|树形结构或者权限使用
需求是:三级联动数据,获取到的数据也是树形结构的,需要不停的往下循环,但是又不确定是几层,那么这样需要用到递归方法。
2023-05-23 02:56:31
360
原创 set对象【es6】
一种数据结构,Set的一个重要特性就是集合中是不允许添加重复元素的如果是简单数据类型,会使用精确相对运算符号 === 判断是否是全等的如果是引用的数据类型,则判断内存地址是否一样特殊的NaN由于其本身在就不等于自己,所以需要特殊对待视为相等的。
2023-05-18 19:30:00
713
原创 ... js扩展运算符【es6】
三个点(...)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开;字面量一般指[1,2,3]或者{name:'chuichui'}这种简洁的构造方式,多层嵌套的数组和对象三个点就无能为力了说白了就是把衣服脱了,不管是大括号([])、花括号({}),统统不在话下,全部脱掉脱掉!// 数组//对象。
2023-05-18 18:39:20
88
原创 Component template should contain exactly one root element. If you are using v-if on multiple eleme
报错的大致意思是:组件的模板<template>应该只能包含一个根元素,也就是是说作为元素<template>的直系儿子的元素只能有一个。
2023-05-16 00:00:23
3430
原创 params和query的区别:
1.query可以用name和path来引入;接收参数this.$route.query.name;在路由信息配置时路径path不需要占位;2.params要用name来引入;接收参数this.$route.params.name;2.params刷新会丢失 params里面的数据(可考虑采取本地存储解决此问题)1.query更加类似于ajax中get传参,在浏览器地址栏中显示参数;2.params则类似于post,在浏览器地址栏中不显示参数;1.query刷新不会丢失query里面的数据;
2023-05-15 22:05:46
226
原创 js中new的含义
Foo明明只是一个函数,可是为什么new Foo()执行后会突然返回一个对象呢?我们从结果出发可以推断出,既然返回了一个对象,那么这事肯定和。首先预编译,声明提升,解释执行。在JS中,new的作用是。执行时按照顺序来进行,
2023-05-14 09:56:15
630
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人