web前端之面试常见问题

前端常见面试问题

**1、GET和POST的区别
2、POST参数在请求头还是请求体(我回答请求体)
3、浏览器缓存cookie的控制缓存的属性:maxAge,domain,path
4、跨域解决方案 CROS JSONP
5、展开运算符使用场景:解构、做形参
6、Promise的串行怎么实现
7、比如有100个异步任务怎么实现两两一组行
8、webPackage打包用过哪些loader
9loader原理,打包时它遇到不认识的文件怎么找对应的loader的
l0、lader和plugin有什么区别
11、vue-router用过吗
12、打包时是怎么把不同router路径的js分别打包到多个trunk里的
13、vue中computed和watch的区别,使用场景
14、设计模式知道吗,知道装饰者模式吗

下面是收集一些可能遇到的面试问题

一面

1、tcp 和 udp 的区别和使用场景?
2、quic 基于 udp 怎么保证可靠性?
3、讲一下同源策略和跨域方案?CORS 的几个头部是什么?
4、讲一下 react fiber?
5、vue 双向绑定原理?
6、redux 和 mobx 的区别和使用场景?
7、typeof nullnull instanceof Object8、typeof 可以判断哪些类型?instanceof 做了什么?
9、实现一个 bind 函数
10、求数组里面最大连续项的和
11、event loop

二面

12、怎么优化 h5 的加载速度?
13、离线包怎么更新?怎么知道需要打开哪个离线包?
14、js bridge 通信原理?
15、怎么实现 h5 页面秒开?
16、明明不是同一个语言,为什么 js 和 native 可以通信?
17、怎么实现 js bridge 跨多个 app 共用?
18、grpc 相比 http 的优势?
19、rpc 的调用流程?前端怎么调用 grpc 的?
20、为什么要用 grpc?
21、服务发现为什么用 ip,而不用域名?
22、怎么做 DNS 预解析?
23、怎么实现移动端的布局?
24、iOS 下软键盘输入框遮挡遇到过问题么?怎么解决顶不起来的问题?
25、实现两个大数相加
26、求一个数组最大子项的和,要求这些子项在数组中的位置不是连续的
27、常用的 react hooks 方法
28、useState 怎么做缓存的?
react fiber 是什么?
29、怎么解决 useState 闭包的问题?
30、useReducer 比 redux 好在哪里?

三面

31、做过哪些公共组件?DatePicker 怎么实现的?难点在哪里?
32、组件封装有哪些原则?
33、组件数据和 UI 怎么分离?
34、有没有做过一些提高工作效率的东西?
35、有没有了解过拖拽?觉得它有哪些难点?
36、有没有做过优化相关的?webpack 做了哪些优化?
37、cache-loader 和 hard-source-webpack-plugin 的区别是什么?
38、最近遇到的比较难的项目是什么?你们服务是怎么部署的?
39、Puppeteer 可以用来做什么?

简要介绍你的项目

我们先看代码题把,后面才是面试

复制代码

2.1 写出javascript运行结果: 
for(var i=0; i<10; i++){} alert(i);
答:10
2.2 写出javascript运行结果:
var a = 1;
function b() {
    var a = 2;
    function c() {
        console.log(a);
    }
    return c;
}
b()();
答:2
2.3 请通过正则替换,把一串字符串两边的分号去掉,
同时把字符串中间连续出现多个的分号变成一个。
如:;ab;;b;;;e;;  --> ab;b;e
提醒你开头结尾的正则使用^  $
开头结尾不会就算了写中间去重吧
答 str.replace(/;+/g,";")
2.4 请手写3种常见的排序算法,以及说出他们的复杂度和运用场景
function bubleSort(arr){//冒泡 log(n^2)
  for(let i=0;i<arr.length-1;i++){
    for(let j=i+1;j<length;j++){
      if(arr[i]>arr[j]){
        let temp=arr[j]
        arr[j]=arr[i]
        arr[i]=temp
      }
    }
  }
  return arr
}
 
function insertSort(arr){//插入 
  for(let i=1;i<arr.length;i++){
    for(let j=i+1;arr[j-1]<arr[j];j--){
       
      }
    }
}
 
function getMid(left,right,arr){
  let pvot=arr[right]
  if(arr[left]>pvot&&left<right){
    swrap(arr[left],arr[right])
    right--
  }
  if(arr[right]<pvot&&left<right){
    swrap(arr[left],arr[right])
    left++
  }
  return left
}
function fastSort(left,rigth,arr){//快排
  if(left<rigth){
    let mid=getMid(left,rigth,arr)
    fastSort(left+1,mid-1,arr)
    fastSort(mid+1,rigth-1,arr)
  }
}
function swrap(a,b){
  let temp=a
  a=b
  b=temp
}
3、get和post区别
4、http头部有哪些字段
5、说说tcp三次握手
6、长连接和短连接的区别
7、webpack打包流程
8、vue的特性
9、react写过吗
10、闭包有什么作用,为什么要使用闭包,
11、使用闭包有哪些隐患和缺陷
12、闭包为什么会出现内存泄露
13、怎么解决闭包的内存泄露
14、说说async await的原理
15、display有哪些值
16、inline和inline-block有什么区别
17、css框架用过吗
18、用less有什么优点
19、前端学习路线
20、未来职业规划
21、为什么选择工作不打算考研呢
22、你还有什么问题
1.介绍自己
2.我看你也做了许多项目,你项目中遇到的困难的问题是什么?(
3.你怎么解决困难的(查询解决方案,websocket,目前用唤起微信聊天窗口代替)
3.websoket是基于UDP/TCP协议?(TCP)
4.你简历中写到日访问量2W,怎么知道访问情况的。(微信公众平台后台统计看到的)
5.学校大概2W人以上,如何更快的查数据(不知道)
6.查课表、学生信息怎么做到的(接入的是学校的统一认证登录系统)
7.微信小程序用的什么通讯协议?(不知道)
8.如何做到更快进入小程序(首页分包加载,附包点击后才加载,空闲时预下载附包)
9.如何做到预下载附包的呢?
10.预下载附包不知道,后面分包原理应该不知道我就不问了吧
 11. 说一下js变量提升的原理
 12. 说一下var、let、const之间的区别
 13. 声明一个var a 和一个 var a = function(){  }  输出 a  输出结果是什么
 14. 说一下原型链
 15. 说一下null  undefined 的区别
 16. 说一下JavaScript的基本数据类型
 17. 介绍一下promise
 18. 两个上下分布的 div 一个 margin-bottom 10px;一个margin-top:5px,最后的两个 div 之间的距离是多少
 19. 说一下块级元素和行内元素的区别,和举例常见的块级元素和行内元素
 20. 说一下如何改变一个行内元素的高,在不改变display属性的限制条件下
 21. 说一下OSI七层模型有哪些 每层都有哪些协议
 22. 说一下OSI七层协议与TCP/IP四层模型之间的联系
 23. 说一下常见的HTTP状态码
 24. 说一下 websocket 是如何建立连接的  他的特点是什么
 25. 说一下cookie  local storage 、session storage之间的区别
26. 你还有什么要问我的吗
 27. 前端学的很杂您有什么好的学习方法可以分享吗?
 28. 您有可以推荐一下前端的一些书籍吗?
 29. 您可以分享一下在公司的体验吗?
1、线程和进程的区别(线程的状态转换,有哪些状态),还有进程上下文切换,时间开销啥的
2、操作系统的调度算法(高响应比调度算法具体实现过程,举例)
3、mysql底层实现原理,为什么要索引,原理是什么
4、spring boot哪些类跟网络相关
5、双链表插入问题
6、平衡二叉树相关的问题,求第k小的数,时间复杂度
7、浏览器的一次请求过程(里面涉及了哪些http协议)
8、数据结构排序相关的,给1百万个数,分成n等分,求前top10,讲解你的思路
9、聊聊你平时是怎么学习的,看了什么源码
10、Vue和jquery的区别,哪个代码更优美

欢迎关注!!!

我的公众号

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@逆风boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值