整理了一份阿里前端面筋,答案记录在评论里~时长65min,问问题45min,手撕代码20min1、BFC是什么?BFC能用来干什么?怎么才能触发BFC?2、浏览器的重排和重绘是什么意思?重绘的触发条件?如何避免重绘重排?3、http状态码?304 / 301 / 401 / 403 分别代表什么4、什么叫做同源策略,服务端向服务端请求会产生跨域吗?5、函数防抖,函数节流6、看代码输出第一道 输出/闭包for (var i = 0; i < 5; i++) {    setTimeout(function () {        console.log(i);    }, i * 1000);}思考: 1.改为输出0-4 1)用let声明i 2)匿名函数立即执行实现闭包 for (var i = 0; i < 5; i++) {    (function (i) {        setTimeout(function () {            console.log(i);        }, i * 1000);    })(i)}2.改为立即输出0-4 将setTimeout里的函数改为立即执行 第二道 事件循环setTimeout(function () {console.log(1);new Promise(function executor(resolve) {    console.log(7);    for (var i = 0; i < 10000; i++) {        i === 9999 && resolve();    }    console.log(8);}).then(function () {    console.log(9);});}, 0);setTimeout(function () {    console.log(6);}, 0);new Promise(function executor(resolve) {    console.log(2);    for (var i = 0; i < 10000; i++) {        i === 9999 && resolve();    }    console.log(3);}).then(function () {    console.log(4);});console.log(5);7、如何判断元素是否在可视区域ViewPort8、如何实现简单的hash路由9、手写一个倒计时xx时xx分xx秒一开始用setTimeout搞定,问我有什么不足,面试官说会有误差,问我如何解决最后在每次setTimeout里算和上一次的误差,补充在下一轮setTimeout的delay参数里
点赞 31
评论 12
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务