![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试系列
平时的一些个人总结
宋哈哈
2018. 7 本科毕业,从此步入前端。。。。。。。。。
展开
-
20.以下代码输出结果?为什么?
但是浏览器并没有遵守这个规定,为了兼容以前的旧代码,还是支持在块级作用域之中声明函数,因此上面两种情况实际都能运行,不会报错。ES6 引入了块级作用域,明确允许在块级作用域之中声明函数。,函数只能在顶层作用域和函数作用域中声明,不能在块级作用域声明。函数能不能在块级作用域中声明,是一个非常容易混淆的问题。上面两种函数声明,根据 ES5 的规定都是非法的。所以题目中的代码实际运行的时候跟是这样的。原创 2022-09-29 09:51:38 · 179 阅读 · 0 评论 -
19.请介绍一下重绘和回流
能够充分发挥GPU的优势。合成线程生成位图的过程中会调用线程池,并在其中使用GPU进程加速生成,而GPU是擅长处理位图数据的。利用CSS3的transform opacity filter这些属性可以实现合成的效果,也就是常说的GPU加速。触发回流的时候,如果DOM结构发生改变,则重新渲染DOM树,然后将后面的流程(包括主线程之外的任务)全部走一遍。由于没有导致DOM几何属性的变化,因此元素的位置信息不需要更新,从而省去布局的过程。当DOM的修改导致了样式的变化,并且没有影响几何属性的时候,会导致重绘。原创 2022-09-28 20:41:43 · 304 阅读 · 0 评论 -
18.常见的loader以及作用的总结
常见loader原创 2022-09-20 21:25:37 · 779 阅读 · 0 评论 -
17.react-router里的Link标签和a标签的区别是什么
区别是: Link标签是react-router里实现路由跳转的链接,一般配合Route使用,react-router接下了a标签的默认链接跳转行为,区别于传统的页面跳转,Link标签的"跳转"行为只会触发相匹配的Route对应的页面内容更新,而不会刷新整个页面。从最终渲染的DOM来看,这两者都是链接,都是a标签。附:a标签默认事件禁掉之后做了什么才实现了跳转?原创 2022-09-20 21:11:52 · 918 阅读 · 0 评论 -
16.sourceMap是什么?生产环境如何使用?
nosources-source-map:只会显示具体行数以及查看源代码的错误栈。安全性比source map高。打包压缩后的代码不具备良好的可读性,想要调试源码就需要 soucre map。hidden-source-map:借助第三方错误监控平台Sentry使用。source:通过nginx设置将.map文件只对白名单开放(公司内网)map文件只要不打开开发者工具,浏览器就不会加载。原创 2022-09-20 21:06:17 · 423 阅读 · 0 评论 -
15.React和Vue 项目时为什么要在列表组件中写 key
在交叉对比中,当新节点跟旧节点头尾交叉对比没有结果时,会根据新节点的key去对比旧节点数组中的key,从而找到相应旧节点(这里对应的是一个key => index 的map映射)。而如果没有key,那么就会采用遍历查找的方式去找到对应的旧节点。从以上来看,不带有key,并且使用简单的模板,基于这个前提下,可以更有效的复用节点,diff速度来看也是不带key更加快速的,因为带key在增删节点上有耗时。没有绑定key的情况下,并且在遍历模板简单的情况下,会导致虚拟新旧节点对比更快,节点也会复用。转载 2022-09-15 21:14:24 · 134 阅读 · 0 评论 -
14.React中props和state的区别?
react中的props和state的区别原创 2022-09-15 20:44:04 · 235 阅读 · 0 评论 -
13.什么是防抖和节流?有什么区别?如何实现?
防抖和节流的作用都是防止函数多次调用。区别在于,假设一个用户一直触发这个函数,且每次触发函数的间隔小于wait,防抖的情况下只会调用一次,而节流的 情况会每隔一定时间(参数wait)调用函数。防抖 触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间这是一个普通的防抖函数// func是用户传入需要防抖的函数// wait是等待时间cons...原创 2019-05-13 09:09:56 · 12190 阅读 · 1 评论 -
12.简述vue-router是如何实现的
vue-router可以通过mode参数设置为三种模式:hash模式、history模式、abstract模式。原创 2022-09-10 17:35:43 · 292 阅读 · 0 评论 -
11.请介绍一下localStorege和sessionStorage
localStorege和sessionStorage是为了解决cookie的不足出现的。原创 2022-09-10 17:13:46 · 178 阅读 · 0 评论 -
10.请介绍一下cookie
对cookie了解多少原创 2022-09-10 17:02:56 · 99 阅读 · 0 评论 -
9.webpack中的loader和plugin的有什么不同
loader和plugin的区别原创 2022-09-10 16:50:07 · 502 阅读 · 0 评论 -
8.vue的双向绑定的原理是什么
vue是采用数据劫持 结合 发布-订阅模式来实现响应式的。vue2.x是通过ES5提供的Object.defineProperty()方法来劫持(监视) 对象中各个属性的getter和setter,当获取值时触发getter方法,设置值时触发setter方法,当数据变动时,发布消息给订阅者,触发相应的监听回调。将需要被响应式的对象进行递归遍历,包括子属性对象的属性,都添加上getter和setter方法,给这个对象的任意一个属性赋值,就会触发setter,就能监听到数据变化了。原创 2022-09-08 10:22:39 · 217 阅读 · 0 评论 -
7.在js中[] == ![] 为什么为true?
在js中[] == ![] 为什么为true?原创 2022-07-12 22:51:34 · 412 阅读 · 2 评论 -
6.什么是js的变量提升
js作用域1.在没有let之前 有三种分别是全局作用域、函数作用域、eval2.js的作用域,是静态的 在定义时产生3.执行函数时,会产生执行上下文(EC) , 分为全局上下文和函数上下文4.执行上下文包括三部分内容,变量对象(VO)、作用域链、this指向;(vo 是js引擎实现的,我们并不能直接去访问到它, 在全局上下文中,var a = 1; a就声明到了VO中)举个例子var a = 1;function sum() {}// 此时js引擎会这样去做:/** vo(原创 2022-05-09 23:20:05 · 259 阅读 · 0 评论 -
5.在javascript中 基本数据类型有哪几种,null是对象类型还是基本数据类型?
基本数据类型:Number String Boolean null undefined Symbol看一下代码示例:var str = 'hello'str[0] = '123'console.log(str); // hello原因:在js中,内存分为栈内存和堆内存。栈内存存放有固定大小和空间的内容,但是字符串是个特例,它具有不变性,所以字符串也存储在了栈内存中;堆内存一般存储的是不固定的内容,如果声明的变量是引用类型的,会在栈内存中存放引用地址,这个地址指向堆存.原创 2022-05-09 22:08:12 · 603 阅读 · 0 评论 -
4.执行上下文、执行上下文栈、作用域链
执行上下文Js代码在引擎中是以“一段一段”的方式来执行的,而非一行一行来分析执行的。这些可执行代码在执行的时候会创建一个一个的执行上下文。例如,当执行到一个函数的时候,js引擎会做一些“准备工作”,而这个“准备工作”,我们称其为执行上下文。 每个函数执行的时候 都会产生一个执行上下文 执行上下文的三个重要属性: 变量对象(VO):变量对象是与执行上下文相关的数据作用域,储存了在上下文中定义的变量和函数声明。并且不同的执行上下文也有着不同的变量对象,这里分为全局上下文中的变量对象和函数执行.原创 2022-05-09 21:37:07 · 400 阅读 · 0 评论 -
3.为什么0.1+0.2不等于0.3 ?
1.在计算机中 存储都是2进制的, 数字计算时也会先转换成2进制再进行计算2.十进制 => 二进制如何转化的?0.1 可以把 0看做整数位 1看做是小数位规则:* 整数位 当前位的值*2^(n-1) 当前位的值乘以2的n-1次密* 小数位 把当前位的值不停的*2取整1.举个整数的例子:二进制数1010 => 0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 0 + 2 + 0 + 8 = 10不信你用 parseInt('1010', .原创 2022-05-05 21:52:16 · 288 阅读 · 0 评论 -
2.js判断变量类型:typeof、instanceof、constructor、Object.prototype.toString.call()的区别
typeof 判断 不能判断对象类型 typeof [] typeof {} typeof null // 都返回 'object' instanceof 判断谁是谁的实例 依据是 __proto__ constructor 可以找到这个变量是通过谁构造出来的 Object.prototype.toString.call() 不能细分谁是谁的实例定义一组变量let num = 123;let str = 'abcd';let bool = true;let obj = { a...原创 2022-03-06 12:07:10 · 244 阅读 · 0 评论 -
1.js基础-原形与原形链
一图搞懂构造函数原型、原型链的关系原创 2022-03-05 21:58:39 · 102 阅读 · 0 评论