当前位置: 首页 > 面试经验 >

PDD 前端 一面 面筋(附答案)

优质
小牛编辑
134浏览
2023-03-28

PDD 前端 一面 面筋(附答案)

整理了一份PDD前端面筋,答案记录在评论里~

时长65min,问问题45min,手撕代码20min

1、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、如何判断元素是否在可视区域ViewPort

8、如何实现简单的hash路由

9、手写一个倒计时xx时xx分xx秒

一开始用setTimeout搞定,问我有什么不足,面试官说会有误差,问我如何解决

最后在每次setTimeout里算和上一次的误差,补充在下一轮setTimeout的delay参数里

#我的实习求职记录##23届找工作求助阵地##拼多多2023春招##前端面试[话题]##牛客创作充电计划#
 类似资料: