这是12月15日和16日的一次面试,是我第二次面字节,供大家参考。
一面
自我介绍
项目介绍
CSS 画正方形
CSS 画三角形
盒模型
BFC原理、触发条件、能做什么
垂直居中有哪些方法
看输出
function Foo() { getName = function () { console.log(1); }; return this; }; Foo.getName = function () { console.log(2); }; Foo.prototype.getName = function () { console.log(3); }; var getName = function () { console.log(4); }; function getName() { console.log(5); }; Foo.getName(); getName(); Foo().getName(); getName(); new Foo.getName(); new Foo().getName(); new new Foo().getName();
设计模式 工厂模式
宏任务微任务 看输出
手写数组深拷贝
看输出的那道题非常经典,同时涉及到变量提升、作用域以及操作符优先级等问题,非常考验基础,建议大家好好掌握。给大家找了两个题解:
二面
自我介绍
个人规划
JSON中超出int范围的id怎么处理
AJAX有哪些步骤
HTTP状态码
后端返回一个50X的错误,如何处理
TCP UDP 的区别 拥塞控制
两个客户端怎么通讯
浏览网页被植入广告是为什么
JS中0.1+0.2是多少,如何解决精度问题
实现一个类继承另一个类(可以用别的语言)
Cookie Token 有了解吗
Redis的底层数据结构
连续子数组最大和
用Promise实现sleep
智力题:两个人轮流抛硬币,其中一个人先抛,先抛到正面者胜,求两个人的获胜概率。
这一面问的问题其实也还好,个人感觉比第一次面试的二面状态好多了,基本上都能答个***不离十。但是可能自己代码写得还是不够多,像超出int范围的id在JSON.parse的时候的精度问题可以用json-bigint库来解决,后面0.1+0.2那个问题也可以通过math.js库来解决,这两个问题都只答到了思路,其实知道对应的库+原理的话基本上才算答得比较完整。连续子数组最大和后面两道题其实也是面试官多给的两次机会,不料自己不争气。倒数第二题一时想不到可以用setTimeout,没做出来。最后一题只答到后投的那个人的概率是前一个人的二分之一,没有进一步想到这样的话他们分别是2/3和1/3。
挂得不冤枉,还应再努力。
全部评论
(6) 回帖