一些想到的问题

本文最后更新于:9 个月前

1、Vue中父子组件的加载顺序?
  父子组件在加载时

  • 如果子组件是同步加载的,那么父组件会先created然后在beforemounted时对子组件进行created,子组件根据在父组件中使用的顺序进行created,当所有子组件被mounted时,父组件才会进行mounted。
  • 如果子组件时懒加载模式,那么父组件会在created,mounted之后的beforeUpdate时根据子组件的顺序进行子组件的created和mounted

2、浏览器每一帧发生了什么事情?

3、页面适配怎么做?rem什么原理?
  @media screen可以进行区分,也可以使用viewport进行缩放,或者使用rem根据html根元素的font-size进行缩放,很少使用em,因为em是根据父元素的font-size进行缩放,而且每个组件的em值可能都是不一样很难管理
4、贪心和分治说一下?
  贪心通俗理解为找到局部最优解,在局部情况下我只找最接近结果的情况,然后所有情况加在一起得到最终最优解,该算法必须一系列子问题中每个子问题不依赖于后面子问题的解,我才能确定当前子问题的局部最优解不会影响最终解;
  分治算法也是大问题拆解成小问题注意解决的情况。比较经典的就是快速排序算法,和归并排序,快排是通过找到一个mid值,然后把小于的放左边大于的放右边,然后左右再继续执行相同的操作来进行排序的,这就是把大的排序问题拆解成小的排序问题,直到最后解决了小问题,那么大问题也得到解决。归并中也是类似,把数分成两堆,然后解决小问题的排序问题,最后把小的排序结果进行归并操作得到最终排序结果。
5、Vue的生命周期有啥?
  有几个重要阶段:beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeDestroy,destroyed,分别是组件创建,组件载入,组件更新,组件销毁,其中数据是在created时就被获得,载入时数据载入Dom
6、Webpack你是用什么进行打包优化的?
  我用的是hard-sourse-webpack-plugin,因为他第一次要缓存所以第一次时速度没有变化,但是第二次的速度就能特别快,提升很显著,起码在80%以上,选这个是因为这玩意很简单,只需要导入后然后在plugins里加上new HardSourceWebpackPlugin就能实现基本功能,特别简单好用。

#奇奇怪怪的问题

Proxy相对于Objec.defineProperty的优势?区别?

常见的dom操作有哪些?

页面中哪些时候会进行重绘重排

Webpack的原理?有哪些好处?

首屏加载优化方案?

有哪些性能优化方法?为什么可以达到优化?怎么做性能监控?

一个优化文章

重绘和回流 是什么,在什么时候发生,机制是什么,如果减少?

cookies,sessionStorage和localStorage的区别?除了这些indexedDb和Web SQL又是什么?

vue响应式原理的理解?vue3和vue2有什么区别,怎么看待官方推送版本变成了vue3?

vue数据双向绑定的原理,哪些时候会失效,失效了又要如何处理?

浏览器工作原理–浏览器如何渲染页面?

什么情况会导致内存泄漏?

浏览器工作原理–浏览器如何实现垃圾回收?计数?三色标记?v8的新老空间?

浏览器兼容性问题及其解决方法

AMD和CMD和commonjs的区别

什么是虚拟dom?为什么虚拟dom能提升性能?vue和react的domdiff算法有啥区别?react各个版本针对dom又做了什么优化

闭包的理解

原型和原型链的理解

vue和react的区别

react中setState后发生了什么?

shouldComponentUpdate作用

vue的keepAlive是什么

清除浮动的方法

防抖和节流的使用场景和手写

Promise有何见解,手写一个包含promise.all race allSettled

跨域和他的几个解决方法

javascript的值引用和值类型?涉及的深浅拷贝

js中有哪些数据结构?v8引擎中对对象的优化?快慢对象优化?weakMap是什么?为什么可以很快被回收?

http请求有哪些区别?是个什么流程,中间经过了哪些步骤?

tcp三次握手四次挥手做了什么?中间会产生什么攻击,怎么防范?

tcp和udp有啥区别?应用场景分别是什么?

websocket是怎么实现的?

http1.0和2和3的区别是什么?有什么不同?有哪些常用的状态吗?

304时是什么缓存?http缓存是什么?协商缓存和强缓存有哪些区别?分别是怎么工作的?什么时候用什么?由什么字段控制?

http常用的请求头有哪些?

fetch请求两次是为什么?OPTIONS预检请求是什么?

SSL加密的原理?还有哪些常用的加密手段?AES对称加密和RSA非对称加密算法是如何使用的?

ajax的优缺点,原理?

axios 原理是什么?

如何进行xss攻击?如何防范?如何进行csrf攻击?如何防范

网络层攻击有哪些?tcp报文攻击?udp报文攻击?ICMP报文攻击?

网络层(TCP/UDP)攻击与防御原理

应用层攻击有哪些?dns报文攻击?HTTP报文攻击?其他的Flood攻击?

应用层(DNS/HTTP/HTTPS)攻击与防御原理

SPA应用首屏加载慢的优化方案

css中link和@import的区别?

bind,apply和call的区别,手写一个

this的指向问题?他的本质是什么?EC AO VO,浏览器底层是如何进行变量制造和上下文处理的?作用域链是什么?

vue中的data为什么使用return直接data对象为什么不行

data 必须是一个函数
  当我们定义这个<button-counter>组件时,你可能会发现它的 data 并不是像这样直接提供一个对象:

data: {
  count: 0
}

取而代之的是,一个组件的 data 选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝:

data: function () {
  return {
    count: 0
  }
}

如果 Vue 没有这条规则,点击一个按钮就会影响到其它所有使用了该按钮实例

typeof和instacneof的区别

外边距重叠的问题?

seo优化?

new操作符做了什么

面向过程编程是什么 和面向对象有什么区别?

什么是ssr?有做过吗?有什么困难

箭头函数和普通函数区别?

Page Visibility API用途?

HTML5新的特性?

CSS3新特性?

px,em,rem的区别?1px解决方案

BFC(块级格式化上下文)的理解

script标签设置async或者defer的用处和区别?

浏览器加载资源时的顺序和优化方案?

居中有哪些方法?

无限列表如何实现?复用和只是用一些dom

浏览器事件机制是什么?冒泡和捕获?事件委托?分别是什么

什么是点击穿透