2022年前端面试题整理

1. 浏览器的缓存机制

2.实现一个简单的 路由跳转 router

 class Router(){

todo

}

router.register('/user/id')

router.match('/user/123')

router.push({path: '/user/:id', name:'xxx'})

3. 浏览器的垃圾回收原理

 

4.js 中什么时候会产生异步事件

 

5. async/await 的实现

6.浏览器页面渲染机制 

6.1 从浏览器的地址栏中输入 url 到页面渲染

7.实现 构造函数中的 new  (new 的实现原理)

8.为什么 tcp 握手是 三次,而挥手是四次

9. var, let, const 的区别

// 第一题
let a = 10;
function funa(){
     console.log(a)  // 报错
    let a = 20;
}
funa()
console.log(a) // 10

// 第二题
let a = 10
function funb(){
    console.log(a)  // undefined
    var a = 20
}
funb()
console.log(a) // 10

// 第三题
let a = 10
function func(){
    console.log(a) // 10
    a = 20
}
func()
console.log(a) // 20

 

10.js 中实现继承的方式,区别和优缺点

11.Vue中父子组件的生命周期执行顺序

12. vue 中 组件之间的通信

13. 事件循环机制 和 队列

14. 手写 promise 源码

15. css 选择器的优先级

<div class="a" id="a">
  <div class="b c d e f g h i j k l m n o p q">
    text
  </div>
</div>

<style>
#a .c{
  color: red
}
.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q{
  color: blue;
}
</style>

文本是什么颜色?为什么?
red,
因为 css 的优先级是按照 important > 内联样式 > id > class > 标签选择器
首先是按照优先级,如果优先级一样,再来按照权重进行比较。常说的 id 权重 等于100,并不是说它真等于100,只是一个方便计算的值。

 

16. webpack 打包工具,loader 和 plugin 什么时候会用到,是如何实现的。

 

 

 

以下是百度别人的面试题:

  1. 服务器怎么解析这个地址和ip地址怎么查找的
  2. 三次握手是怎么过程,服务器怎么识别握手是同一个客户端的
  3. 进程和多线程讲一下,有什么关系
    js的类和c++、java的类有什么区别?
    浏览器单线程怎么优化的?
    vue项目怎么优化的,提到gzip被虐
    跨域怎么解决的?cors后台是怎么写的?讲了一下xss
    对于小程序里面的权限是怎么做安全校验的
    事件流,事件委托讲了下
    原型和原型链讲了下
    let const var区别,怎么手写一个函数实现const的功能
    单线程和异步怎么使用到和体现的
    解释一下settimeout的原理
    promise的认识
    promise和async 和区别
    浏览器的安全问题有哪些详细介绍一下
    http和Https去区别,为什么https比http安全?ssl优点

posted on 2022-01-28 11:39  bala001  阅读(82)  评论(0编辑  收藏  举报

导航