网易前端实习一面
网易一面
-
自我介绍(我开视频面试官不开视频,不好玩)
-
项目介绍(共享屏幕演示项目)
-
defer标签和async标签有什么区别(虽然都是异步执行js,但defer是先下载完成再在别的script加载完成后才执行,而async则是下载完成就立即执行)
-
闭包了解吗(举个例子,父函数里面套着一个子函数,则父函数不能读取到子函数的变量,子函数可以读取到父函数的变量,这样就形成了闭包,闭包的优点的可以保存变量,防止变量被垃圾回收,缺点是闭包使用不规范可能会导致内存泄露)
-
闭包的应用场景(我说防抖和节流)
-
说说原型和原型链(隐式原型__proto__,显式原型prototype,构造器constructor,Object没有隐式原型,具体参考原型链图)
-
继承有几种方式,具体说说(原型继承、寄生继承、组合继承、寄生组合继承等等)
-
能具体说说寄生组合继承吗(我说ES6后这些继承没那么重要了,所以我可能记得不是太清楚)
-
跨域了解吗,一般有几种方式(我说jsonp,websocket,我常用的是二次封装axios时在里面配置跨域的HTTP请求头为*,还有我自己写后端的时候会在后端进行专门的跨域配置)
-
Symbol是什么,用过吗(我说在手写call、apply这些的时候有用到过,Symbol的特点是具有唯一性)
-
类数组和数组有什么区别(我说类数组是arguments这种,有很多数组的方法,对于类数组都不能使用)
-
如何将类数组转换为数组(我说Array.from,面试官问还有吗,我想不起来了,其实还有Array.prototype.slice.call())
-
说说React吧,React的生命周期了解吗(还是那几个,背就完事了)
-
React中的props和state有什么区别(我说props可以用来父子组件传参,state用来保存当前组件的变量,不管是用法还是作用都有很大差别)
-
React组件通信的几种方法(props可以实现父传子,useContext可以实现兄弟间组件通信,useRef可以实现子传父,redux、mobx这些库都能实现)
-
那Vue2的响应式怎么实现的(我说用的Object.defineProperty,但我最常用的还是Vue3,Vue3用的Proxy,所以底层的原理并没有很了解)
-
模块化有哪些(我说AMD/CMD、commonjs、ES Module,其中ES Module是最常用的import export的写法,commonjs在nodejs中应用,使用ruquire进行导入,AMD和CMD的区别是一个同步一个异步)
-
反问(1.日常工作(回答技术栈都用,但是具体做啥说得不具体)2.我能学到什么(回答是一些项目的开发经验,前后端联调什么的))
-
总结:全是八股,没有算法,面试用的会议软件也不是很好用