2023面试复盘

面试开场自我介绍、接着是离职原因

一般简单的自我介绍就行,如果你的经历比较辉煌可以多说一点

离职原因一定要表现出你积极向上的态度

727号下午2 

  New 操作符做了什么: 

 

  1. 创建一个空的对象{}
  2. 将这个空对象的 __proto__ 指向构造函数的 prototype 属性。这样该对象就可以访问构造函数原型上的属性和方法。
  3. 将这个空对象作为this的上下文调用该函数。如果该函数没有返回对象,则将 this 返回。
  4. 如果函数返回了一个对象,则返回该对象,而不是 this

 

  Vue2 数组pushshift的双向绑定是怎么实现的:

    作者在vue原型上重写了push()方法,使数组进行操作时可以实现双向绑定

   Vue3 的watchEffect 是什么:

    数据监听,相比watch方法watchEffect会立即执行一次

  httphttps的区别:

    http:

      http明文未加密

      http默认是端口号80

      优点:便宜,不需要解密,更快

      缺点:不安全

    https:

      https = https + ssl

      Ssl加密协议 应用层和传输层加了一个安全层

      需要ca证书

      https默认端口号443

      优点:安全,

      缺点:贵、加密解密需要时间,慢

  Tcp三次握手和四次挥手: 

    三次握手:

      第一次:客户端向服务端发送一个syn

      第二次:服务端收到syn包,向客户端返回syn+ack

      第三次:客户端收到后回复一个ack

      确立连接

    四次挥手:

      假如客户端向服务端发起关闭请求,

      第一次挥手:他需要向服务端发送一包fin表示自己要关闭连接,然后进入等待状态1

      第二次挥手:服务端收到fin包,会发一个ack包表示进入等待状态,

      第三次:此时服务器还能向客户端发送数据,发送完数据再发送一个fin

      第四次挥手:客户端收到ack包,进入超时等待状态,经过超时等待后,关闭连接,服务端收到ack包。立即关闭连接

  Web1.x web2.0web3.0:

    1.0 可读,如各新浪等门户网站,需要有专门的编辑人员发文章上去,只有很少的留言功能

    2.0 互动性,可以自己发信息,例如微博,脸书,抖音,小红书,用户不仅是平台的使用者也是内容的贡献者

    3.0 去中心化,2.0时代的自己发送的信息都依托于平台,信息泄露什么的,3.0自己的就是自己的,一个账号走天下

  Webpackloader 有哪些:

    1、file-loader:把⽂件输出到⼀个⽂件夹中,在代码中通过相对 URL 去引⽤输出的⽂件。
    2、url-loader:和 file-loader 类似,但是能在⽂件很⼩的情况下以 base64 的⽅式把⽂件内容注⼊到代码中去。
    3、source-map-loader:加载额外的 Source Map ⽂件,以⽅便断点调试。
    4、image-loader:载并且压缩图⽚⽂件。
    5、babel-loader:将ES6转化为ES5。
    6、css-loader:加载 CSS,⽀持模块化、压缩、⽂件导⼊等特性。
    7、style-loader:把 CSS 代码注⼊到 JavaScript 中,通过 DOM 操作去加载 CSS。
    8、eslint-loader:通过 ESLint 检查 JavaScript 代码。
    原文链接:https://blog.csdn.net/weixin_47450807/article/details/124051856

  网站优化:

    优化点一:网站速度优化

      网站速度优化整体资源优化

      减少http请求,资源压缩,cdn加速,路由、图片懒加载,预加载等等

      首屏优化:懒加载,图片懒加载,预加载

      利用第三方检测工具,检测页面性能,针对具体比较耗时的资源优化

    优化点二:seo优化

      Ssr服务端渲染,Vue官方介绍的ssr操作起来比较复杂,可以试用Nuxt.js,基于vue的ssr框架,可以方便的创建服务端渲染项目

      页面内容尽量丰富,标签尽可能语义化,每个页面最好有<h1></h1><h2></2>这样的标签,

 

7月29日

  什么是闭包:

    因为作用域的原因函数外的不能访问函数内的变量,闭包的作用就是让函数外也能访问函数内的变量,闭包通过返回一个引用内部变量的函数来实现

    闭包像一个隔离区,可以防止变量污染,封装公用方法,缺点是会造成内存泄露

  如何解决闭包内存泄露问题:

    闭包使用后,将引用闭包的变量赋值为null

  常见的内存泄露有哪些:

    全局变量、闭包、setTimeout等没有清除的定时器,变量引用的DOM使用后没有及时清除,没用清除的时间监听,console.log的变量  

  websocket断网怎么办: 

    1. 客户端向服务器定时发送一条心跳消息。
    2. 服务器在接收到客户端发送的心跳消息后,立即回复一条响应消息。
    3. 客户端在一定时间内未收到服务器的响应消息,则认为连接已断开,需要重新连接。

  缓存:

    强制缓存:强制缓存在规定时间内缓存存在,就不重新下载

    协商缓存:文件没有被修改过,就不重新下载

  盒模型:

    w3c盒模型:包括margin、padding、border、content,宽高 = content

    IE盒模型:包括margin、padding、border、content,宽高 = padding + border + content

 

2023年8月18日

  时隔二十天终于迎来了第三次面试

    盒模型:

        盒模型有两种:w3c标准盒模型和IE怪异盒模型

    说说css选择器的优先级

        important > 行内选择器 > id选择器 > class选择器 > 标签选择器 > 通配符选择器

       一个id选择器的权重是100,十一个class选择器加一起能大于一个id选择器吗?

          不能 

    js的数据类型有哪些

        基本数据类型:number,string,null,undefined,boolbren

        引用数据类型:object,Array,function

       怎么判断数据类型

          typeof() 可以用来判断基本数据,bull的时候等于object,array也是object

          instanceof() 判断一个类型返回 true或flass

          Object.propotype.toString.call()

          contructor()

          Array.isArray() 判断是否是数组

        你说的这几个方法那个是最全面的

            Object.propotype.toString.call()

    ES6 用过那些方法接口

        let、const、new Set、improt、export、... 解构、模版字符串、 new Map、object.key()、object.value()、for of、assign、promise、class

 

   promise.all()中有一个错误会怎么样

        当所有任务都返回成功时返回成功,只要有一个返回失败就会返回失败

    深拷贝、浅拷贝

        直接赋值,assgin(), ...有多层时都是浅拷贝

        深拷贝可以用JSON.parse(JSON.stringify()),缺点是朋友null。undefined等会报错

        递归一层一层赋值,缺点麻烦

        map最简单的方法

    数组去重

        新建一个空数组,遍历旧数组,判断当前遍历值是否在新数组中,没有就加入,

        ...new Set()

    本地存储

        cookies, sessionstorage,localstorage,indexdeDB

        sessionstorage在多个tab项可以通用吗

    vue2、vue3的双向绑定原理

      obj.definpropoty()能劫持数组吗,

       vue2重写了数据相的方法

    路由有哪些模式

        hash:hashchange事件

         histry:popState事件

      点击a标签的时候histry模式下会触发popState吗

        不能

    vue数据通讯有哪些方法

        props、emit、ref、nventbus、$attr、$prent、$child、插槽、prviode/inject、vuex、pinia

      vue3能用ref调用子组件方法吗

        需要先在子组件导出才能用

 

2023年8月22号

  0.5像素的边框怎么实现

    使用css3的缩放

  手机端为什么有的1px看起来会比较粗

    因为手机分辨率的不同,所展示的像素点不同

  怎么写一个倒计时

    setinterval

  倒计时有误差是什么原因

    定时其实异步任务,在执行之前回先执行同步任务,同步任务执行完之后才会去任务队列中找异步任务,并且微任务还要排在宏任务前面

  如何解决误差

    查看:https://blog.csdn.net/weixin_40381947/article/details/130966839

  ios和安卓系统的时间问题

    因为时区的处理方式差异可能导致时间上有问题,js可以采用第三方插件处理时间比如dayjs、momentjs,避免使用本地时间,采用服务器时间等

  平时遇到过什么问题,如何解决

    1.早期的微信分身不能获取本地图片,解决方法是调用微信jssdk,使用微信方法

    2.第一次写小程序的时候测试的时候卡顿,原因是本地资源太多,使用setData太多,解决办法是静态资源放cdn,减少setData

    3.官网的seo无法达到预期效果,将咨询页单独做服务端渲染

  有什么目标

    有机会的话想做前端负责人

  公司项目中做出过哪些贡献

    1.需求评审给组员分配任务

    2.给同事答疑解惑,进行培训

    3.对新开的项目技术选型,搭建合适的框架

    4.给官网做seo

  对项目做过哪些优化

    减少http请求、减少重构回流、利用缓存、资源优化,代码压缩,静态资源压缩,静态资源cdn,按需加载,懒加载,第三方检测工具

    图片懒加载怎么实现:给所有图片一个默认图片,给img标签设置一个自定义属性,用来存放真是图片地址,当它出现或者将要出现在屏幕中时将url换成自定义属性的图片地址

    怎么知道图片有没有出现在屏幕中:监听滚动距离和img距离窗口顶部的距离,通过差值判断图片位置

 2023年8月24日

    创业公司,基础问的少,主要问的经验方面,做过哪些项目,B端的多还是C端的多,用的哪些技术栈

    基础问了几个

    箭头函数和匿名函数

    minxins

    vue和react生命周期

    如何异步调用

    重复请求如何处理

  2023年8月25日

    hr先问一些不着边际的东西

    然后技术

    项目搭建

    做过哪些优化处理

   2023年8月26日

    一面主要是聊经验,项目经验带队经验,代码规范之类的

    二面总经理、主管面和HR,问一下基础,职业规划,对人员管理的看法,代码规范的看法云云,薪资要求等等

    还问了你个问题就是你能给我们公司带来什么

  2023年9月20日

    意外的面试,新的公司已经入职,之前投递的公司打了电话面试

    问了性能优化,和包管理工具原理的问题

总结:不管是面试还是平时都要经验复盘、总结,有些问题可能你听过了解过,可是过了一段时间就忘了,等再次遇见相同的问题就只能拍大腿了。所以一定一定要做记录,不管是写到小本本上还是写到电脑上,最好是云上可以随时访问的。不知要在学习写代码上,平时为人处世也应该复盘,比如今天参见了一场什么会议,会上表现怎么样,哪里发挥不好,下次应该怎样发挥等等。甚至是跟对象相处的事也可以总结一下。

posted @ 2023-08-10 11:48  不要香菜谢谢~  阅读(98)  评论(0编辑  收藏  举报
123456