- 博客(20)
- 收藏
- 关注
原创 【下载】拷贝过去就能用
handlePreview(file) { if(!file.id) return this.$message.error('请先提交') var url = process.env.VUE_APP_BASE_API + "/file/download" + file.id var xhr = new XMLHttpRequest() xhr.open("get",url,true); xhr.setRequestHeader("Authorization","Bearer"+getToken()
2022-02-19 18:32:55 185
原创 2021-03-25
session,cookie,sessionStorage,localStorage的区别及应用场景版权1.session,cookie,sessionStorage,localStorage的区别及应用场景cookie保存在浏览器端,session保存在服务器端cookie如果不在浏览器中设置过期时间,cookie被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie简称会话cookie。如果在浏览器中设置了cookie的过期时间,cookie被保存在硬盘中,关闭浏览器后,co...
2021-03-25 07:42:14 102
原创 2021-03-22
原生的DOM操作虚拟DOM和diff算法虚拟dom就是用对象的方式区代真实的dom操作。当页面打开时浏览器解析HTML元素,构建一个dom树,将状态保存起来,在内存中模拟dom操作,又会生成一个dom树,两个进行比较,根据diff算法找出不同的地方,之渲染一次不同的地方diff算法:就是进行虚拟节点对比,并返回一个patch对象,用来存储两个节点不同的地方,最后用patch记录的消息去局部更新DomJS中所有全局都是window的window的作用:在封闭空间中声明一个全局的变量全局变量和函数
2021-03-22 07:50:09 42
原创 2021-03-22
JS基础知识总结1.什么是模块化模块化是指把一个复杂的系统分解到一个一个的模块,再用一定的方式拼装起来。2.模块化开发的优点(1)一个单独的文件就是一个模块,是一个单独的作用域,只向外暴露特定的变量和函数。这样可以避免污染全局变量,减少变量命名冲突。(2)代码复用,让我们更方便地进行代码管理、同时也便于后面代码的修改和维护。3.js模块化规范Js模块化规范有:CommonJS、AMD、CMD、以及本文要总结的ES6的模块系统。其中,CommonJS是服务端的模块规范,AMD和CMD是浏览器端
2021-03-22 07:47:10 54
原创 2021-03-22
JS面试基础题async/await和Promise的关系async函数的返回值是 Promise 对象, await命令后面可以是 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)async/await 和 Promise 的关系,就是 async function 就是返回 Promise 的 function。这句话意味着很多,例如await 同样可以用于返回 Promise 的其他函数例如我们有function timeout(time) { r
2021-03-22 07:42:53 46
原创 2021-03-19
js同步,异步的区别,Promise的使用什么是同步异步在传统单线程编程中,程序的运行是同步的。同步不意味着所有步骤同时运行,而是指步骤在一个控制流序列中按顺序执行)定义JavaScript的单线程浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。而异步的概念则是不保证同步的概念,也就是说,一个异步过程的执行将不再与原有的序列有顺序关系。为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线
2021-03-19 07:48:39 68
原创 2021-03-16
Vue框架基本面试点总结1,Vue 基础使用指令,插值插值,表达式指令,动态属性v-html:这个会有 XSS 风险,会覆盖子组件 (用了之后内部自己写的所有代码块都会被覆盖,失效)computed(计算) 和 watch(监听)computed 有缓存,data不变则不会重新计算(缓存意味着不用重复加载)当 dom 是通过 v-model 绑定时 要 get() 和 set() 否则会报错watch 本身是浅度监听 如何深度监听?要用到 handler 以及 deep : true 深度
2021-03-16 23:19:44 50
原创 2021-03-14
web前端框架以及项目面试二vue面试题1、v-sho 和 v-if 的区别是什么(1)、当条件为真的时候 没有区别 当条件为假的时候 v-if是不创建元素 v-show 渲染元素然后隐藏掉(2)、v-if更适合数据的筛选和初始渲染, v-show更适合元素的切换2、为何 v-for 中要用 key1.vue中列表循环需加:key=“唯一标识” 唯一标识尽量是item里面id等2.key主要用来做dom diff算法用的3.没有key的时候默认使用的是“就地复用”策略4。标签名一样,key
2021-03-14 22:26:09 41
原创 2021-03-14
web前端框架以及项目面试关于面试基层工程师:基础知识高级工程师:基础知识+项目经验构架师:解决方案能力关于基础工程师的自我修养:基础知识扎实的基础能让你高效学习新技术几个面试题typeof能判断哪些类型?何时使用window.onload 和 DOMContentLoaded 的区别JS穿件10个标签,点击的时候弹出对应的序号手写节流throttle、防抖debouncePromise解决了什么问题什么是知识体系高效学习三部曲:找准知识体系;刻意训练;及时反馈知识体系:结构
2021-03-14 22:24:48 44
原创 2021-01-19
性能优化(概述)一、软件系统质量特性安全性同时兼顾向合法用户提供服务,以及阻止非授权使用软件及资源的能力。健壮、可靠软件系统在一定的时间内无故障运行的能力、容错能力、恢复能力 。可用性、易用性、性能性能是指软件及时提供相应服务的能力。 具体而言, 性能包括速度、 吞吐量和持续高速性三方面的要求 。可扩展、可维护、可移植正在运行的软件系统以适应新需求、变化了的需求的难易程度二、性能的定义及表现定义多快给用户想要的结果考察两个方面:1.流畅度2.更少的资源占用一些证据页面加载超过
2021-01-19 21:31:45 214
原创 2021-01-16
promise和asyncPromise是异步编程的一种解决方案是为了解决js中的回调地狱问题什么是回调地狱?当回调函数嵌套过多时就会出现回调地狱ajax(url1,function(res1){ console.log(res1) ajax(url2,function(res2){ console.log(res1,res2); ajax(url3,function(res3){ console.log(res1,res2,res3); })
2021-01-16 21:32:16 46
原创 2021-01-14
rem适配原理原理:是相对于根元素的font-size计算值的倍数计算方式:屏幕宽度/设计稿宽度*基本宽度=fontsize使用:通过rem+js改变根元素font-size来实现兼容性更高的页面使用JavaScript来动态修改根元素的大小,其他的rem单位会被浏览器转换成px。本质:等比缩放,一般给予宽度缺点:在响应式布局中,必须通过js动态控制字体大小,css和js代码有一定的耦合性,将必须改变字体的代码放在css之前。最简单的rem配置function rem(){
2021-01-14 21:51:01 44
转载 2021-01-14
js线程,事件循环,微任务和宏任务js单线程什么是单线程:JavaScript 语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。为什么js是单线程:与它的用途有关。作为浏览器脚本语言,JavaScript 的主要用途是与用户互动,以及操作 DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript 同时有两个线程,一个线程在某个 DOM 节点
2021-01-14 21:36:01 45
原创 2021-01-13
深拷贝浅拷贝、数据类型检测、原型1.深拷贝和浅拷贝都是针对复杂数据类型来说的,浅拷贝只拷贝一层,深拷贝是层层拷贝。2.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象只是对原对象的一个引用3.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“拷贝”而不是“引用”<script> let arr = [1, 2, 3, 4, { name: 555 }] Object.prototype.deepClone = f
2021-01-13 20:00:17 52
原创 2021-01-13
gitHub使用 当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。 你可以把它想象成一个 “文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。 除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。 ### 多人协作开发流程 A在自己的计算机中创建本地仓库 A在github中创建远程仓库 A将本地仓库推送到远程仓库 B克隆远程仓库到本地进行开发
2021-01-13 19:34:40 92 1
原创 2021-01-12
vuex 辅助函数一、辅助函数都有哪些?mapStatemapActionsmapMutationsmapGetters二、作用可以快速地获取数据和方法,简化操作三、使用<template> <div> <p>{{ tetAdd }}</p> <p>{{ numBer }}</p> <el-button type="success" @click="but">
2021-01-12 21:32:01 39
原创 git
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-01-12 15:57:23 91
原创 2021-01-11
冒泡排序定义:冒泡排序是一种简单的内部排序算法,它通过遍历集合,把相邻的两个元素进行两两比较,把大的元素放在右边,如此反复,最终使集合达到有序的目的。由于每一次都是确定一个最大的元素放到最右端,这个过程有点像气泡从底部不断上浮,称为冒泡排序。比如有一个序列:4、6、2、1、10、9这是一个无序的序列,现在想把它按从小到大进行排序。冒泡排序的做法是,从最左端开始,选两个元素开始进行两两比较,直到遍历到有序序列的下标(这里是指最右端有序序列的长度),一轮比较下来可以把序列里最大的元素放在序列的最右
2021-01-11 18:55:42 45
原创 2020-11-23
JavaScript中let、const、var 的区别一、var 声明变量存在变量提升。即:变量可以在声明之前调用,值为“undefined”。 let和const不存在变量提升。即它们所声明的变量一定要在声明后使用,否则报ReferenceError错。console.log(f) //undefinedvar f = 1 ;console.log(g) //ReferenceError: g is not definedlet g = 2;console.log(h) //Re
2020-11-23 19:09:12 51
原创 2020-11-23
for···in和for···of的区别### for...in:取索引值; for...of:取value值1.遍历数组和字符串,遍历出来的都是下标(即索引值),for···of遍历出来的是value(即数组的值);var arr = [99,88,66,77];for(let i in arr){ console.log(i); //0,1,2,3}for(let i of arr){ consoel.log(i); //99,88,66,77}2
2020-11-23 18:50:50 49
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人