前端面试题9

  1. promise和async/await区别
  2. 防抖截流具体实现函数
  3. vuex在刷新页面时,数据会丢掉,怎么解决
  4. typeof 和instanceof 区别
  5. ES6添加的几个方法
  6. ES6用来检测是否为数组的方法
  7. div 居中的几个方法
  8. 盒子模型
  9. V-for的key 起什么作用
  10. Uniapp生命周期

1.应用生命周期
uni-app 支持 onLaunch、onShow、onHide 等应用生命周期函数,详情请参考应用生命周期
2.页面生命周期
uni-app 支持 onLoad、onShow、onReady 等生命周期函数,详情请参考页面生命周期

  1. 双向绑定原理
  2. 登录验证怎么做的
  3. 自己封装过axios 拦截器吗
  4. 实现一个深拷贝和一个浅拷贝的方法
  5. 闭包
  6. Commonjs
  7. Js深度遍历
  8. import/export区别
  9. Exports/export 区别
  10. Js 事件循环机制
  11. Zindex 一定是最大就在最前面吗?了解规则吗
  12. Flex,介绍规则和实战效果
  13. Transform 实现效果
  14. 花一条0.5px的线
   .line-test {
      height: 1px;
      transform: scaleY(0.5);
      transform-origin: 50% 100%;
      background: #000;
    }
  1. 渐变属性
  2. Es6 常用哪些
  3. 箭头函数与普通函数的区别
  4. 普通函数怎么修改this 指向
  5. Call怎么用
  6. 改变箭头函数this 指向
  7. 原型链自己怎么用
  8. 对作用域有什么了解
  9. Promise 用过吗,有哪种状态
    promise的基本用法以及实现原理
  10. Promise 已经resolved了怎么修改成rejected
  11. Promise 解决了哪些问题
  12. Async await 解决了什么问题
  13. await 的原理,怎么等待后面执行
  14. setTimeout跟promise有什么区别
  15. setTimeout和 promise 哪个先打印

promise先

  1. setTimeout模拟setInterval
  2. Ts any never什么区别
  3. Interface用过吗
  4. Ts type解释一下
  5. Webpack loader plugin 有什么区别
  6. 如果不使用任何loader,可以编译哪些文件
  7. 在vue 的哪个生命周期初始化data
  8. 为什么不在beforeCreated 里面初始化
  9. Watch computed 用在什么场景
  10. Vue怎么做数据劫持的
  11. Getter setter怎么做数据劫持的,object.defineProperty有什么缺点
  12. 用过$set吗
  13. Vue-router 有哪些模式,常用什么
  14. Hash, history模式底层实现使用js的什么
  15. 事件循环机制
  16. 数组去重,怎么自己实现
  17. 什么情况下会形成跨域

请求方式/协议/域名/端口 任一不相同

  1. 怎么解决跨域

  2. Nginx 反向代理怎么实现的

  3. Jsonp 怎么实现的,需要后端配合吗

  4. 了解axios 底层原理吗,了解原生的js 的请求吗?大概的步骤是什么样的

  5. 解释一下深拷贝和浅拷贝,怎么实现一个深拷贝,自己实现

  6. for…in, for…of区别

  7. 怎么判断一个变量的具体类型

  8. vue 双向绑定的count 更快,还是js的dom 直接修改html内容更快

  9. 变量提升理解吗,提升指的什么,先打印后声明,会打印出什么

  10. 循环完毕,会打印出什么,怎么避免

for(var i=0; i<10; i++) {
  setTimeout(()=>{
    console.log('var i=',i);
  }, 0)
}
  1. 移动端适配问题怎么解决,了解h5适配吗

媒体查询和rem 适配
viewport 缩放,, rem 布局,js计算
vw适配方案(以后可能的方案)

  1. 了解token 吗,存在哪里,cookie 行吗,session storage 和cookie 哪个安全点
  2. Git 操作流程
  3. source tree 操作流程
  4. 做小程序遇到的问题
  5. History 和hash 模式底层原理

hash:window.location.hash 和 onhashchange() 来实现的;
history:window.location.pathname 、history.pushState() 和 onpopstate() 来实现的;

  1. 组件 子传父,父传子
  2. filter 用过吗?怎么用
  3. Vue生命周期,每个周期发生什么
  4. 之前项目几个人开发,自己搭过吗
  5. React写过项目吗,jsx 有什么好处
  6. 自己有使用过哪些ES6的语法
  7. 说一下你最熟悉的项目的业务逻辑
  8. HTTP状态码 500是什么
  9. 说一下js的闭包
  10. 说一下原型链
  11. js数组方法,concat是什么
  12. 字符串的方法
  13. 块级元素,行内元素有哪些
  14. 水平居中,垂直居中
  15. 前端的书看过哪些
  16. 继承的方式
  17. 对原型了解多少
  18. 原型方法里定义方法和构造函数的方法,实例化以后有什么区别
  19. 说一下this
  20. Call, apply, bind 的区别和联系及内部实现
  21. 防抖和节流的区别

1、防抖(debounce):触发高频事件后 n 秒内函数只会执行一次,如果 n 秒内高频事件再次被触发,则重新计算时间
举例:就好像在百度搜索时,每次输入之后都有联想词弹出,这个控制联想词的方法就不可能是输入框内容一改变就触发的,他一定是当你结束输入一段时间之后才会触发。
2、节流(thorttle):高频事件触发,但在 n 秒内只会执行一次,所以节流会稀释函数的执行频率
举例:预定一个函数只有在大于等于执行周期时才执行,周期内调用不执行。就好像你在淘宝抢购某一件限量热卖商品时,你不断点刷新点购买,可是总有一段时间你点上是没有效果,这里就用到了节流,就是怕点的太快导致系统出现bug。
区别:防抖动是将多次执行变为最后一次执行,节流是将多次执行变成每隔一段时间执行。

  1. Uniapp 路由跳转方法
  2. Js设计模式了解哪些
  3. Vue 双向绑定的原理
  4. TCP 3次握手和4次挥手

3次握手
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
4次挥手
1)客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。
2)服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。
3)客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。
4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
5)客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。
6)服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

  1. 请求断开是服务器先断开还是浏览器先断开
  2. 计算属性用过哪些
  3. Computed, watch区别
  4. 从输入url 到页面加载完成经历了哪些过程

1、浏览器的地址栏输入URL并按下回车。
2、浏览器查找当前URL的DNS缓存记录。
3、DNS解析URL对应的IP。
4、根据IP建立TCP连接(三次握手)。
5、HTTP发起请求。
6、服务器处理请求,浏览器接收HTTP响应。
7、渲染页面,构建DOM树。
8、关闭TCP连接(四次挥手)。

  1. 计算属性用过传参吗
  2. 用过vuex的哪些方法,详细介绍下
  3. vue router钩子函数有哪些
  4. 说一下promise的状态
  5. promise 状态可以改变吗
  6. 如果同时需要调5个请求,怎么用promise 实现
  7. Echarts 用过哪些图表
  8. 调用百度地图api用来做了什么
  9. 回调地狱难题是什么
  10. 调接口用什么调的
  11. async/await是什么
  12. React class 的生命周期
  13. 拖拽效果
  14. reduce
  15. 性能优化(比如滚动屏幕时会卡顿)
  16. seo
  17. 流水线部署
  18. linux 环境
  19. 新手指引
  20. 防抖节流
  21. windows shell 和linux bash 啥区别
  22. ts 有什么好处
  23. 数组排序去重重
  24. promise.all
  25. 发过npm包吗
  26. webpack 打包css
  27. 使用npm run build打包很慢,怎么优化
  28. 如果产品已经交付给用户,怎么实现错误监控(前端错误监控)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值