您现在的位置是:焦点 >>正文

web前端笔试题及答案

焦点5人已围观

简介 web前端笔试题及答案 上周帮朋友公司筛前端简历,收了47份,能进面试的不到8个。笔试环节刷掉的人最多——不是题难,是基础太碎。我挑三道高频错题,直接拆开讲。 第一题:闭包输出什么? for ...

web前端笔试题及答案

上周帮朋友公司筛前端简历,端笔收了47份,试题能进面试的及答不到8个。笔试环节刷掉的端笔人最多——不是题难,是试题基础太碎。我挑三道高频错题,及答直接拆开讲。端笔

第一题:闭包输出什么?试题

for (var i = 0; i < 5; i++) {  setTimeout(() => console.log(i), 100); }

答案:5 5 5 5 5。80%的及答人写0到4,错在没理解var是端笔函数级作用域。循环结束i已经变成5,试题五个定时器回调共享同一个i。及答改成let就输出0到4,端笔因为let每次迭代绑定新变量。试题这题考的及答不是背答案,是看候选人有没有真正跑过代码——我见过有人能背出答案,但问“为什么var是5”就卡壳。

第二题:事件循环顺序

console.log('A'); Promise.resolve().then(() => console.log('B')); setTimeout(() => console.log('C'), 0); console.log('D');

输出顺序是A D B C。很多人栽在把Promise当成同步代码。微任务(Promise.then)永远比宏任务(setTimeout)先执行,哪怕setTimeout延迟是0。有个细节:Promise构造函数里的回调是同步的,但.then才是微任务。这道题我通常追问一句:“如果再加一个process.nextTick呢?”Node环境下nextTick比Promise还早,浏览器里没这玩意儿。

第三题:手写防抖

这道题不是考算法,是考习惯。标准答案长这样:

function debounce(fn, delay) {  let timer = null; return function(...args) {  clearTimeout(timer); timer = setTimeout(() => fn.apply(this, args), delay); }; }

大多数候选人能写出前半段,但漏了this指向。如果内部用箭头函数,this就丢了;如果调用时不用apply,原函数的this会被window污染。我见过最离谱的写法是直接在返回函数里写fn()——连参数都不传。这题暴露的是实战经验,不是背代码能力。

说句实话,现在前端笔试题越来越卷。上周看到某大厂考“用CSS画一个三角形”,底下答主都在骂。但换个角度想,出题人想筛的不是会不会画,是能不能快速给出最简方案——border透明法一行搞定,伪元素法三行,clip-path虽然新但兼容性差。这种题反而能看出候选人的技术广度。

给准备笔试的人一个建议:别刷题库了。把MDN上Array、Object、Promise这三个章节的示例代码全部手写一遍,比刷200道题管用。我面试时发现,凡是能当场解释清楚“为什么这样写”的人,入职后代码review基本不用操心。

Tags:

相关文章

  • 前端教学

    焦点

    我在带第一个前端实习生的时候,发现他卡在了一个极简单的问题上: 他写了一个按钮,点了没反应。控制台报错,他看了一眼,然后挠头——那行错误他看不懂。不是不认识英文,是不知道那串字符跟他写的代码有什么关系 ...

    【焦点】

    阅读更多
  • 云南防雷大地网测试仪厂家电话

    焦点

    云南防雷大地网测试仪,这玩意儿在行内叫接地电阻测试仪,专门用来测变电站、基站、风电场那些大型接地网的接地电阻。厂家电话这东西,网上搜出来一堆,但真正靠谱的没几个。我直接说结论:昆明市官渡区那家“云电电 ...

    【焦点】

    阅读更多
  • 成功案例说明怎么写

    焦点

    成功案例说明,写不好就成了产品说明书。我见过太多人把客户的成功全归功于自家产品,读起来像邀功,没人信。 真正打动人的案例,开头往往是客户的困境,甚至带点狼狈。去年我给一家工业设备商改案例,原稿第一句是 ...

    【焦点】

    阅读更多


友情链接