![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
m0_49471668
这个作者很懒,什么都没留下…
展开
-
数组对象转换为二维数组
【代码】数组对象转换为二维数组。原创 2024-01-25 19:19:05 · 197 阅读 · 0 评论 -
for循环三种跳出循环的方法(retrun、continue、break)
break语句只有在循环语句和switch语句中使用才是合法的,经常用来跳出循环,不会执行后续循环,但是会继续执行循环之后的。3、return:指的是跳出for循环,且不执行for循环之外的语句,直接跳出当前函数,返回return后的值。1、continue:指的是跳出当前循环,即不执行continue后的语句,直接进入下次循环。不同的是,它不是退出一个循环,而是跳出当前循环,进行下一轮循环】console.log('end');本身,不再进行之后的循环,但可以执行for循环之外的语句。原创 2023-10-27 00:09:34 · 6873 阅读 · 0 评论 -
Css3使用
CSS3是CSS(层叠样式表)的最新版本,它引入了许多新特性,使网页设计更加灵活和富有创意。在本文中,我们将介绍CSS3的一些新特性,包括选择器、布局、动画和变形效果。CSS3引入了一些新的选择器,使得选择元素更加灵活。例如: 属性选择器:可以根据元素的属性选择相应的元素。伪类选择器:可以选择元素的特殊状态。子选择器:可以选择某个元素的子元素。相邻兄弟选择器:可以选择某个元素的相邻兄弟元素 二、布局SS3引入了一些新的布局方式,使得网页设计更加灵活。例如:网格布局(Grid原创 2023-10-26 23:38:01 · 766 阅读 · 0 评论 -
Vue生命周期
mounted一般是在html渲染完成后的操作,此时el,data都已经加载完成,一般对dom的操作都写在mounted中,例如获取innerHTML,初始化echarts的时候。created一般是在html渲染前的操作,此时el还是undefined,data已经存在。一般 created/beforeMount/mounted 皆可。比如如果你要操作 DOM , 那肯定 mounted 时候才能操作。1、created和mounted的区别。2、第一次页面加载会触发哪几个钩子?原创 2023-10-26 22:57:28 · 217 阅读 · 0 评论 -
TCP三次握手具体过程
3)客户端收到服务器的确认请求后,此时,客户端就进入FIN_WAIT_2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据,版关闭状态,skynet就支持这种半关闭状态,redis,nginx,memeched均不支持)。4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST_ACK(最后确认)状态,等待客户端的确认。原创 2023-10-26 19:02:19 · 244 阅读 · 0 评论 -
vue中的key的作用和工作原理,key不建议是index
key不建议是index <ul> <li v-for='(item,index) in arr' :key="index">{{item}}</li> </ul> <button @click="btn">按钮</button><button @click="btn2">按钮2</button> data() { return { arr:['原创 2022-03-21 15:52:48 · 1026 阅读 · 0 评论 -
数组上的一些方法
原创 2023-10-25 20:49:39 · 62 阅读 · 0 评论 -
react17:生命周期函数
react(v17.0.2)的如下。相较于16版本,17版本生命周期函数有如下变化:虽然UNSAFE_componentWillMount、UNSAFE_componentWillUpdate、UNSAFE_componentWillReceiveProps当前依然可用,但在react未来的版本中可能被移除,所以尽量避免使用。更多可以访问如下链接:。。原创 2023-08-29 16:29:35 · 914 阅读 · 0 评论 -
useLayoutEffect和useEffect的区别
优先使用useEffect,因为它是异步执行的,不会阻塞渲染会影响到渲染的操作尽量放到中去,避免出现闪烁问题和是等价的,会同步调用,阻塞渲染在服务端渲染的时候使用会有一个 warning,因为它可能导致首屏实际内容和服务端渲染出来的内容不一致。原创 2023-10-25 20:06:08 · 151 阅读 · 0 评论 -
rem em px的区别
原创 2023-10-25 19:59:28 · 66 阅读 · 0 评论 -
js延时加载有哪些方式
原创 2023-10-25 19:58:54 · 79 阅读 · 0 评论 -
前端模块化
使用一个技术肯定是有原因的,那么使用模块化可以给我们带来以下好处。原创 2023-10-18 16:31:13 · 46 阅读 · 0 评论 -
DOM和BOM
原创 2023-10-18 15:19:31 · 40 阅读 · 0 评论 -
if语句for 循环不能写hooks的原因
原创 2023-10-17 17:12:03 · 58 阅读 · 0 评论 -
useEffect的两个参数
情况一:useEffect需要传递两个参数,第一个参数是逻辑处理函数,第二个参数是一个数组特殊情况处理。原创 2023-10-13 17:44:41 · 482 阅读 · 0 评论 -
左200px 右自适应怎么实现
其次: flex-grow: 1;给父节点一个弹性盒子 display:flex。原创 2023-10-13 17:31:39 · 38 阅读 · 0 评论 -
rpx是微信小程序独有的,解决屏幕自适应的尺寸单位
rpx: 是微信小程序独有的,解决屏幕自适应的尺寸单位可以根据屏幕宽度进行自适应,不论屏幕大小,规定屏幕宽为 750rpx,通过rpx设置元素和字体大小,小程序在的屏幕上可以。原创 2023-10-13 15:16:22 · 800 阅读 · 0 评论 -
z-index属性什么情况下会失效
4.在手机端 iOS 13 系统中,-webkit-overflow-scrolling:touch 也会使 z-index 失效,将 touch 换成 unset。解决:设置该元素的position属性为relative,absolute或是fixed中的一种;1.父元素position为relative时,子元素的z-index失效。通常 z-index 的使用是在有两个重叠的标签,在一定的情况下控制其中一个在另一个的上方或者下方出现。3.元素在设置z-index的同时还设置了float浮动。原创 2023-10-13 15:02:26 · 584 阅读 · 0 评论 -
Event Loop
javaScript是一门单线程的语言,他的异步和多线程的实现是通过Event Loop事件循环机制实现。大体由三部分组成:调用栈(call stack)、消息队列(Message Queue)、微任务队列(Microtask Queue)Event Loop开始执行时会从全局代码开始,一行一行执行。遇到函数调用,会压入调用栈中被压入的函数叫做帧(Frame)会从调用栈中弹出如上图代码,首先把func2()压入调用栈中,执行func2()中的代码遇..原创 2022-03-22 11:46:01 · 1478 阅读 · 0 评论 -
浅拷贝和深拷贝
//浅拷贝 对象let obj1 ={ a:1}let obj2=obj1obj1.a=2console.log(obj2)//{a:2}//简单数值型let a=1;let b=a;a=2;console.log(b)//1两者结果不同是因为简单数值类型和复杂数据类型存储方式的不同原创 2022-03-25 19:35:16 · 2719 阅读 · 0 评论 -
浏览器输入url到页面渲染完成的步骤
原创 2023-10-12 15:39:48 · 38 阅读 · 0 评论 -
displaty:none与visibility:hidden的区别
原创 2023-10-12 11:03:44 · 134 阅读 · 0 评论 -
ES6相关
目录var1.声明提升2.变量覆盖3.没有块级作用域const1.const定义的变量不能被修改,否则报错2.声明之后必须赋值,否则报错3.支持let的其他属性let解构相关Promisevar let const 都是用来定义变量的var1.声明提升es6中不再推荐使用var打印undefined不叫变量提升(因为根本没有附上值),叫声明提升步骤:1.声明一个num 2.赋值 没有附上值,所以叫做声明提升使用let.原创 2022-04-15 22:13:12 · 156 阅读 · 0 评论 -
作用域和作用域链
var定义的变量是受到函数作用域限制的,不受if{}块作用域的限制。而在if0块作用域内声明前使用和在块内声明后块外使用,也只是打印出undefined,并不会报错。let定义的变量,是受块作用域的限制的。let定义的变量不管是在函数内声明前使用,还是函数内声明后函数外使用,及块内声明块外使用都报错is not defined。,那么这个a变量是哪里来?var是js的,作用域是函数作用域的,let是ES6的,作用域是块级作用域的。即在{}花括号内的域,比如if(){}块,for块。查找,没有找到,再去。原创 2023-10-11 11:09:08 · 56 阅读 · 0 评论 -
防抖与节流
在开发中,常常会去监听滚动事件或者用户输入框验证事件,如果事件处理没有频率限制,会加重浏览器的负担,影响用户体验感。因此可以采取防抖(debounce)和节流(throttle)来处理,减少调用事件的频率,达到较好的用户体验。防抖(debounce):一:html中在事件触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时,重新触发定时器<body> <div class="box" id="container"> <p>原创 2022-03-13 22:21:53 · 62 阅读 · 0 评论 -
for循环,for of, forEach, map, for in
性能较差,因为需要列举对象的所有性能,有转化过程,所有开销较大。foreach 是 for 的封装。封装的作用就是抽象,让代码可读性更好。不需要索引的情况,直接使用。相比,后者比较简洁。原创 2023-10-10 17:34:04 · 69 阅读 · 0 评论 -
闭包就是能够读取其他函数内部变量的函数
闭包就是能够读取其他函数内部变量的函数function f1(){ var n=999; function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999在上面的代码中,函数f2就被包括在函数f1内部,这时f1内部的所有局部变量,对f2都是可见的。但是反过来就不行,f2内部的局部变量,对f1就是不可见的。这就是Javascript语言特有的"链式作用原创 2022-03-09 17:44:01 · 314 阅读 · 0 评论 -
前端性能优化
1.从输入URL到页面加载完成,完整的链路1.DNS解析2.TCP连接3.HTTP请求抛出4.服务器处理请求,HTTP响应返回5.浏览器拿到响应数据,解析响应内容,把解析的结果展示给用户2.整个性能消耗http 网络层面1.DNS解析...原创 2022-03-18 12:09:48 · 668 阅读 · 0 评论 -
数组结构整理
什么是数组结构?数组结构是计算机存储、组织数据的方式。数据结构是指互相之间存在一种或者多种特定关系的数据的集合。结构包括逻辑结构和物理结构数据的逻辑结构包括4种:(1)集合:数据元素之间除了有相同的数据类型再没有其他关系(2)线性结构:数据元素之间是一对一——线性表,栈,队列(3)树形结构:数据元素之间是一对多的关系(4)图状结构:数据元素是多对多的关系物理结构包括顺序存储与链式存储:(1)顺序存储结构是用一段连续的存储空间来存储数据元素,可以进行随机访问,访问效率高。(2)链式存储结构是用任意存储空间来存原创 2022-06-25 01:24:27 · 513 阅读 · 0 评论 -
服务端渲染
在服务端渲染好再传给浏览器就是服务端渲染,比如以前的jsp页面,将写好的html模板等传到浏览器来服务端渲染:服务器直接渲染好对应的html页面,返回给客户端进行展示,比如jsp页面好处:前端耗时少,减少了首屏时间,占用客户端资源少 坏处:服务端压力大前端渲染:网络请求获取数据渲染到html页面中,比如SPA页面(也就是vue-cli构建的页面)好处:首屏时间长,页面加载好后不会再重新加载,数据请求比较少,速度快。服务器压力小,只用出数据就可以,坏处:前端耗时多,对前端人员水平要求高,前端代码较多,因为在后原创 2022-06-24 22:03:54 · 281 阅读 · 0 评论 -
XSS攻击
得分点 XSS是跨站脚本攻击、向目标网站插入恶意代码、大量用户访问网站时运行恶意脚本获取信息 标准回答XSS是跨站脚本攻击(Cross Site Scripting),不写为CSS是为了避免和层叠样式表(Cascading Style Sheets)的缩写混淆,所以将跨站脚本攻击写为XSS。攻击者可以通过向Web页面里面插入script代码,当用户浏览这个页面时,就会运行被插入的script代码,达到攻击者的目的。 XSS的危害一般是泄露用户的登录信息cookie,攻击者可以通过cookie绕过登录步骤直接原创 2022-06-24 17:37:32 · 914 阅读 · 0 评论 -
CSRF攻击
得分点 CSRF时跨站请求伪造、盗用用户身份发起请求 标准回答CSRF跨站点请求伪造(Cross Site Request Forgery)和XSS攻击一样,有巨大的危害性,就是攻击者盗用了用户的身份,以用户的身份发送恶意请求,但是对服务器来说这个请求是合理的,这样就完成了攻击者的目标。CSRF攻击的过程原理是: - 用户打开浏览器,访问目标网站A,输入用户名和密码请求登录 - 用户信息在通过认证后,网站A产生一个cookie信息返回给浏览器,这个时候用户以可正常发送请求到网站A - 用户在没有退出网站A之原创 2022-06-24 16:59:55 · 85 阅读 · 0 评论 -
keep-alive
1. 简介keep-alive 是 Vue 的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 transition 相似,keep-alive 是一个抽象组件:它自身不会渲染成一个 DOM 元素,也不会出现在父组件链中。作用: 在组件切换过程中将状态保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验性。原理: 在 created 函数调用时将需要缓存的 VNode 节点保存在 this.cache 中在 render(页面渲染) 时,如果 VNode 的 n原创 2022-06-24 16:41:10 · 161 阅读 · 0 评论 -
垃圾回收机制
垃圾回收机制:GC,js中内存的回收和释放都是自动完成的,内存在不使用的时候会被垃圾回收器自动回收内存泄漏:不再用的内存,没有及时释放,就叫内存泄漏内存生命周期:得分点 栈垃圾回收、堆垃圾回收、新生区老生区、Scavenge算法、标记-清除算法、标记-整理算法、全停顿、增量标记 标准回答浏览器垃圾回收机制根据数据的存储方式分为栈垃圾回收和堆垃圾回收。栈垃圾回收的方式非常简便,当一个函数执行结束之后,JavaScript 引擎会通过向下移动 ESP 来销毁该函数保存在栈中的执行上下文,遵循先进后出的原则。堆垃原创 2022-06-24 11:43:57 · 71 阅读 · 0 评论 -
Vue钩子函数
得分点 beforeCreate、created、beforeMounted、mounted beforeUpdate、updated 、 beforeDestroy、destroyed 标准回答钩子函数按照组件生命周期的过程分为,挂载阶段=>更新阶段=>销毁阶段。每个阶段对应的钩子函数挂载阶段:beforeCreate、created、beforeMounted、mounted更新阶段:beforeUpdate、updated销毁阶段:beforeDestroy、destroyed每个阶段特点与适合做什么原创 2022-06-23 21:46:55 · 161 阅读 · 0 评论 -
Vue3.0 实现数据双向绑定的方法 ?
Vue3.0 是通过Proxy实现的数据双向绑定,Proxy是ES6中新增的一个特性,实现的过程是在目标对象之前设置了一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。用法:ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例。var proxy = new Proxy(target, handler)target: 是用Proxy包装的被代理对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。handler: 是一个对象原创 2022-06-21 10:12:07 · 4541 阅读 · 0 评论 -
HashRouter 和 HistoryRouter的区别和原理
HashRouter和 HistoryRouter的区别:1. history和hash都是利用浏览器的两种特性实现前端路由,history是利用浏览历史记录栈的API实现,hash是监听location对象hash值变化事件来实现2. history的url没有'#'号,hash反之3. 相同的url,history会触发添加到浏览器历史记录栈中,hash不会触发,history需要后端配合,如果后端不配合刷新新页面会出现404,hash不需要。HashRouter的原理:通过`window.onhash原创 2022-06-08 17:48:26 · 898 阅读 · 1 评论 -
变量提升和函数提升
var声明的变量存在变量提升、let与const声明的变量不存在提升,但是存在暂时性死区的问题。变量提升:在js编译阶段将该被声明的变量提升至代码的最前面。同时声明优先级来说,函数提升优先级大于变量提升,变量提升会覆盖掉函数提升暂时性死区:暂时性死区是在变量未定义之前,就访问该变量所造成的的问题......原创 2022-06-08 17:27:55 · 65 阅读 · 0 评论 -
未知宽高元素水平垂直都居中的实现方法
得分点`position` `transform` `flex` `justify-content` `align-items` `vertical-align` `text-align`标准回答未知宽高元素水平垂直都居中的实现方法:1. 父position: relative,子`position:absolute;left:50%;top:50%`,让自身平移自身高度50% `transform: translate(-50%,-50%);`,这种方式兼容性好,被广泛使用的一种方式2. 设置元原创 2022-06-08 17:16:06 · 191 阅读 · 0 评论 -
CSS尺寸设置的单位
得分点 px、rem、em、vw、vh 标准回答px:pixel像素的缩写,绝对长度单位,它的大小取决于屏幕的分辨率,是开发网页中常常使用的单位。em:相对长度单位,在 `font-size` 中使用是相对于父元素的字体大小,在其他属性中使用是相对于自身的字体大小,如 width。如当前元素的字体尺寸未设置,由于字体大小可继承的原因,可逐级向上查找,最终找不到则相对于浏览器默认字体大小。rem:相对长度单位,相对于根元素的字体大小,根元素字体大小未设置,使用浏览器默认字体大小。vw:相对长度单位,相对于视窗原创 2022-06-08 17:00:45 · 274 阅读 · 0 评论