背景
周五下午在一个招聘群看到了一个jd,约了周日晚上面试,整个过程大概持续了一个半小时,简单的总结下问到的问题。以及当时的回答,主要是为了复盘下整个过程。
css
1.说下盒模型?
答:分为标准盒模型和怪异盒模型 可以使用box-sizing:border-box触发怪异盒模型
标准盒模型计算:width+padding+margin+border
怪异盒模型: 这个记混了 没有答border
2.知道BFC么?
答: 块级格式上下文
再问:BFC的作用是什么?
答:使元素脱离文档流
再问:常见的BFC有哪些?
答:float:left; float:right; position:absolute;等
再问:position有哪几种属性值
答:relative; absolute; fixed; sticky;等
再问:position:absolute是相对于谁定位
答:若父元素设置了相对定位,则相对于父元素定位,若父元素未设置相对定位,则相对于上级元素设置了position:relative;的节点定位,否则相对于body定位。
3.说出水平垂直居中的一种方式
答: 使用定位+负margin的形式
position:absolute;
left:0;
top:0;
margin-left: -(width/2);
margin-top: -(height/2);
js
-
js基本数据类型有哪些?
答:undefined、null、 boolean、string、 number (这一块没再说其它的方式)
问:引用数据类型呢?
答:Object Array
问: 基本类型存在于哪里?
答:栈内存
-
typeof判断Array会返回什么?
答: Object
问: 如何区分它是不是数组?
答: instanceof
问: 问为什么用instanceof 可以知道得到数组?
答:忘记答得啥了 反正没答到点
问: 有一个 object.xxx.call() 有听过没? [object.prototype.toString.call()]
答: 知道
-
什么是原型?
答: 每一个构造函数都有一个原型,都会有一个显示的prototype属性, 实例化这个构造函数之后,实例化对象,都会有一个__proto__属性,这个__proto__指向构造函数的prototype。
问: 什么是原型链?
答: 在查找函数属性的时候,往往先从本身查找,如果本身没查找到,就会向所指向的构造函数原型去查找,构造函数的原型也没查找到,就会向Object.prototype,如果Object.prototype也没查找到,则指向null 查找结束。
问: new操作符做了什么事情?
答: 1.创建对象 2.绑定this 3.返回这个对象
问: 什么是闭包
答: 外层函数的变量被内层函数访问 返回内层函数。
问: 闭包的作用是什么?
答: 避免全局变量污染
- 箭头函数的this指向谁?
答: 声明时所处的对象 这道题跟对面反复的时间还挺长的 回答不太清晰
-
let与const与var的区别?
答: var有声明提声,let与const没有 const 声明的变量不能更改 let可以 let和const有块级作用域
-
slice的两个参数是什么?
答: 这里记错了 第二个参数说成了截取长度
-
call, aplly有什么区别?
答: 第一个参数是要绑定的对象 call的参数一个个传 apply传入数组
-
bind?
这个bind没答好 这里浪费了好长时间
-
描述下常见的微任务和宏任务?
答: 宏任务有: setTimeout setInvertal promise.then
答: 微任务有: new Promise 执行时语句
-
promise是为了解决什么问题?
答: 解决异步问题
问: async和await解决什么问题?
答: 解决回调地狱问题
问: promise的三种状态?
答: pedning、 fulfilled、rejected
-
fetch和axios的区别?
这个没答好 还需再整理 先记录下
-
节流与防抖?
答: 防抖只执行最后一次,节流在特定时间内只执行一次
webpack
-
如何避免文件被重复打包
答:文件提取 css抽离 js抽离
-
webpack中如何配置cdn路径?
答: 忘了 想不起来了
-
项目有哪些优化手段?
答了 webapck打包这一块 资源按需加载 对面又举例了 雪碧图 css以及js位置
-
知道tree-shinking么?
答: 摇树 删除程序运行过程中无用的 js css 等资源
-
是否自己写过插件?
答:没有
http
- 知道http和https的区别么?
答的不是很好
问TCP和UDP?
这个答得简直惨不忍睹
问常见的状态码?
答:分别说了 200 304 400 401 404 500 等
问:304 协商缓存 和 强缓存?
这一块没get到他的点 后来跟我说他想知道的是那几个字段
问: cookie和session的区别
答: 忘了怎么答的了
问: 有没有一种长连接的协议
答: websocket
框架
-
Vue全局注册一个组件?
答: Vue.component
-
vue生命周期?
……
其他
-
是否优化过工作流?
……
-
对自己评级?
……
结尾
复盘整个过程, 这是能回忆到的所有问题了,感觉挺累的,面试官可能是前后都懂,也没有每一个都深入,可能感觉到我精神不是很好,提了一点建议,就是面试前保持精神充沛,复盘以上过程,也想总结几点
- 面试题可能有你想到的,也可能有你想不到的,还是需要系统复习,自己在下面总以为盒模型不是问题,可是真的就能忘
- 面试过程中保持精神集中 不要给面试官一种精神头很不好的感觉,不要流露消极情绪
- 平时需系统的整理思路,不要组织语言混乱,虽然你知道那个点。
- 补充一点,要举一反三,知道的技术点尽量详细说,不要类似于我,问啥答啥,不大好哦
一篇面经,和一点感想,分享出来,不喜勿喷,另标准答案后期会在git上一个面试的仓库整理出来。
附上仓库地址 一起加油吧!