- 🎖 web前端,对整齐规范的代码有着一丝执着,能将代码变的优雅也是一桩趣事;
- 🥕 喜欢爬山 / 徒步 / 攀岩 / 探洞 / 露营;
buuing / interview Goto Github PK
View Code? Open in Web Editor NEW实战 2021 年前端面经【无删减版】【有码】
实战 2021 年前端面经【无删减版】【有码】
! 16k-25k * 16薪
Event Loop
吗Event Loop
的区别吗HR聊了聊薪资和福利之类的
这家公司还行, C轮融资, 听介绍说他们公司内有三四十个前端, 但是不清楚他们是不是把原生也算进去了
sleep
函数localStore
中的数据postMessage
还有吗Dep
订阅中心的机制吗vue-router
的hash
和history
有什么区别router-view
是如何定位到将要发生改变并渲染的组件呢太累了, 改天再复盘, 反正我过了
! 20k-30k
//
0 1 2
3 4 5
6 7 8
//
1 2 3
4 5 6
7 8 9
我刚走到楼下, HR就给我打了电话, 先是给了22被我拒了, 然后又给我涨到了25, 但是五险一金并不是全额缴纳的, 年终奖说是有, 但我很担心创业公司能否兑现承诺
也是个创业公司, 工作时间995, 感觉他家前端太菜了, 总是问一些特别小白的问题, 内部工位我瞄了一眼, 两只手就可以数的出来
! 20k-30k
我着急赶火车, 语速就比较快, 结果回去听录音发现问了这么多
二面也是聊技术, 但是忘了录音了, 面试官应该是技术总监一类的
boss描述上写的是二次创业, 前台给了一张表格, 我看上面有一些非常可笑的个人规划/未来发展期望/家庭隐私数据就没写这些, 然后前台还很认真的希望我填写完全, 搞笑
一面结束后, 面试官出去沟通了一下, 然后回来婉拒, 说有消息再通知我
改天吧, 我累了, 懒得听录音了...
! 15k-25k
在公司前台等了将近15分钟才来了个前端小姐姐(性格不错)
技术总监全程低头看简历提问, 问了一个树节点隐藏的小问题, 然后问完期望薪资就对我没兴趣了
公司位置离地铁站比较近但是入口比较隐蔽, 第一印象感觉公司人挺多(人来人往的), 但是工位之间的距离挨得很近, 光线昏暗(可能是当前沙尘暴导致的)
有种薪资虚假的感觉
面试过程比较尴尬, 因为我司的项目说实话真没啥可说的, 面试官的侧重点又全在项目上, 本以为凉了, 没想到给我过了
没有聊技术, 感觉全程都在聊52原则, 因为面试官是从京东出来的, 有种何不食肉糜的味道
我但凡要是有选择的权利, 谁不喜欢大公司的稳定? 我就这么愿意去风雨飘摇的小公司?
全程含蓄的压薪资, 不过从体验上来讲, 比刚刚的二面好多了
全程面试都挺失望的, 本以为是一场排位, 结果.........只能感叹日落西山啊
! 15k-25k
二面总监特奇葩, 人进来之后整个人斜瘫在椅子上, 给人一种吊儿郎当的感觉
公司内部不大, 一面聊得还行, 技术面试官挺老实的一个人, 可惜二面总监是个傻屌, 整个人进来不干别的, 就是负责嘲讽然后压薪资, 最后不欢而散
这个二面总监感觉不懂前端, 但是他以为他自己特别懂前端, 有些东西他根本说的不对, 但是依然我行我素, 沉浸在自我世界的认知当中, 拒绝外部的否定
! 15k-20k
聊了一些没营养的话, 主要就是想确定我有没有入职意向和期望薪资, 同时介绍了一下团队情况, 就只需要一个前端, 后端也不多, 传统行业, 项目还是从外包手里接过来的, 想必代码也是屎山
没啥可说的, 传统行业的中后台项目, 就一个前端, 这种公司只适合0-1年的前端做过渡使用
! 20k-30k
问了我两次薪资期望, 看来是薪资虚假了
! 15k-20k
[ // 接口返回的数据结构
{ title: 'xxx', date: '2020/01/30', text: '...' },
{ title: 'yyy', date: '2020/02/02', text: '...' },
...
]
[ // 处理之后的数据结果
{ title: 'yyy', date: '今天', text: '...' },
{ title: 'xxx', date: '3天前', text: '...' },
...
]
可能他家前端比较忙, 一面是总监面的, 聊得不错, 声音非常具有亲和力
声音尖尖的, 刚开始说话的语气非常轻浮, 可能是把我当成刚培训出来的了? 但是在问完第13题之后面试官的声音开始变得认真沉稳起来, 到了最后气势已经完全被我碾压住了
可惜薪资方面最多也就只能申请到到21/22
! 15k-25k
a = []; b = a;
问这个是深拷贝还是浅拷贝a = [0]; b = a, b[0] = 1;
问a[0]是什么这个面试官有个坏毛病, 他每次在我说完之后, 都会接上一句:
嗯, 说的差不多是这个意思
, 合着我这么多题一道题都没答对?
公司内部并不重视技术, 因为我问到的他们现在只有3个前端, 其中一人要离职, 打算再招两个
但是我有种强烈的感觉, 他所谓的再招两个属于撑门面的说法
亏他们还是个D轮融资
! 15k-25k
! 975 工作制
.sync
修饰符用过吗$attrs
和$listeners
是做什么用的$watch
和$watchEffect
之间有什么区别聊得一般般, 觉得我薪资要的高, 这个人不懂前端, 就随便聊了聊
磨蹭了半天最后说给不到期望薪资, 压薪资还谈什么谈, 应付了两句就挂了
cosnt a = { b: 1 }; a.b = 2
有什么方法让他赋值无效arr = [6, 4, 5, 3, 1, 8]
能不能用快速排序把数组升序时间复杂度
和空间复杂度
sleep(1000)
方法迟到了3分钟, 因为我没想到牛客网视频面试竟然还要验证, 总体来讲, 面的还行
决定入职了, 就不打算面了, 直接把二面给推掉了
! 20k-40k
setTimeout(() => console.log(1))
new Promise(resolve => {
console.log(2)
for (let i = 0; i <= 99; i++) {
if (i === 99) resolve()
}
}).then(() => {
console.log(3)
})
console.log(4)
for (var i = 0; i < 4; i++) {
setTimeout(() => {
console.log(i)
})
}
总的来说没啥难度, 全部通过, 面试官给你笔记本, 自己在上面手写, 所以得赶紧写, 免得面试官着急
一面结束之后, 让我等待一下他去叫二面, 结果没一会他回来说今天先到这吧, 就让我先走了
(就这么一个过程, 让我感觉他们实际是不缺人的)
! 15k-25k
面试官说他也是技术, 前后端都是他一个人在做, 然后问了一堆人事方面的问题, 嘴上说着他们碰到合适的人30k也给的起, 但下一句紧跟着又说他们会挑一个期望薪资最低的人...好家伙, 技术都没聊呢就开始画饼压薪资
然后打开他们的公众号开始问: 这个页面你觉得有难度吗, 然后那个棋盘使用了一个canvas插件, 询问我上手难度...后面又问了一些人事方面的问题, 但就是全程不问技术问题
聊了十分钟, 带我到一台电脑前开始做面试题(20道单选, 10道多选, 2道简单算法题), 做完题面试官说你可以走了, 我会给你打分的....我TM
离地铁站步行5分钟, 整个公司看着加起来也就30平米的样子, 总共加起来不超过6个人, 设备老旧, 面试官说是全栈...但感觉技术并不精通, 最起码他没问哪怕一个技术相关的问题, 公司比较坑
薪资虚假, 并且假的很明显
! 10-8-5.5 工作制 有加班
allSettled
和all
之间有什么区别创业公司, 6个前端, 然后第二天反馈说一面挂了
! 10-10-5 工作制
var name = 1
var obj = {
name: 2,
prop: {
name: 3,
getName: function () {
setTimeout(function showName () {
console.log(this.name)
}, 1000)
return this.name
}
}
}
console.log(obj.prop.getName())
var getName = obj.prop.getName
console.log(getName())
(function () {
console.log(1)
setTimeout(() => console.log(2), 1000)
setTimeout(() => console.log(3), 0)
console.log(4)
})();
Promise.all
的应用, 懒得写了add(1)(2);
add(1, 2)(3)
call
/ apply
/ bind
之间有什么不同, 手写一个bind
方法(2).add(4)
得到6, (1).add(2)
得到3Promise.resolve('foo')
.then(Promise.resolve('bar'))
.then(res => console.log(res))
console.log(1)
let p = new Promise(resolve => {
console.log(2)
resolve()
console.log(3)
})
async function fn () {
console.log(4)
await p.then(() => console.log(6))
console.log(7)
}
fn()
setTimeout(() => console.log(8))
console.log(5)
sleep(1000)
函数type
和interface
有什么区别setTimeout(() => console.log(1))
new Promise(resolve => {
resolve()
console.log(2)
}).then(() => console.log(3))
console.log(4)
setTimeout
和setInterval
区别, setInterval
会有哪些问题Map
和WeakMap
之间有什么区别// 假设本地机器无法做加减乘除法,需要通过远程请求让服务端来实现。
// 以加法为例,现有远程API的模拟实现
const addRemote = async (a, b) => new Promise(resolve => {
setTimeout(() => resolve(a + b), 1000)
})
// 请实现本地的add方法,调用addRemote,能最优的实现输入数字的加法。
async function add(...inputs) {
// 你的实现
}
// 请用示例验证运行结果:
add(1, 2).then(result => console.log(result)) // 3
add(3, 5, 2).then(result => console.log(result)) // 10
Tree-shaking
是如何实现按需加载的E轮融资, 马上上市, 但是最高只能给到(n)k*14薪, 可惜了
早上10点到晚上10点, 虽然是双休, 但是感觉业余学习时间就不剩什么了
! 18k-28k * 15薪
typeof Symbol
和typeof Symbol()
会得到什么instanceof
bind
/call
/apply
call
OPTIONS
请求, 它是怎么来的memory cache
/disk cache
/service worker
nextTick
Mutation
和Action
Action
的底层其实也是在提交一个Mutation
, 为什么还要再封装一层呢HR聊了聊, 福利待遇和薪资方面的, 后来就没回音了, 可能嫌我要的高吧
刚到前台就让我在线做了20道选择题, 一道题5分我得了75分......
! 15k-20k
hr全程抖腿/时不时的颠头, 从简历上的方方面面批评我, 否定我个人的任何成就, 说白了就是不断的从任何角度压薪资, 好家伙我还没入职呢就开始PUA了
前台在玩手机很随意, 一面还算正常, 但是在聊的过程中面试官经常玩手机, 导致经常要等待面试官发送完消息才能继续聊, 二面HR是个秃顶+PUA高手, 最后不欢而散
然后我朋友说他曾经入职过这家公司: 入职发了一个2013款的苹果笔记本, 一周上6天(周日-周五), 加班打车报销200块钱/月(对你没看错, 每月最多报销200), 老板在一楼拍桌子发火, 他在二楼都能听到
! 15k-20k
忘了, 感觉这俩面试官对我的开源项目挺感兴趣的
自我介绍 + 谈薪资, HR表示最多帮我争取到21/22k
这家公司没约我, 但是我刚从B座出来, 发现这家公司在C座就上门碰碰运气, 一面可能是个前端 (因为他问问题都是浅尝辄止), 就是那种只要你听说过能说两句就行, 深入的细节方面我看面试官完全没有一起探讨的欲望
! 18k-22k
着急赶火车回家, 全程回答的语速很快
这个小姑娘性格有点奇葩, 19题和29题十分认真的让我凭空想象然后说明数据结构, 我tm还啥都没见过呢, 我说个屁啊, 这俩题导致我心情异常的烦躁
整个过程十分心累, 可以感受到他们公司就是切页面多一些, 但是却喜欢模仿别人问原理底层, 为了问而问
! 25k-40k * 14薪
! 965 工作制
// 输入以下值
var arr = [
15,
[1, new Number(10), 2],
{ a: 3, b: [4, 7, 8] },
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]]
]
// 返回下面的值
[1, 2, 3, 4, 6, 7, 8, 9, 10,11, 12, 13, 14, 15]
console.log(compareVersion('1.0.0', '>', '1.1.1')) // false
console.log(compareVersion('2.0.0', '>', '1.1.1')) // true
console.log(compareVersion('1.99.10', '<', '2.1.1')) // true
console.log(compareVersion('1.1.1', '<=', '1.1.1')) // true
console.log(compareVersion('1.1.1', '==', '1.0.0')) // false
友好的沟通, 这轮并不是很正规的技术面, 可能更偏向于聊天形式的交谈
并没有想象中的那么大方, 我要了个(n+3)k, hr就跟见了鬼一样, 说话的声调都变了, 以至于她后面说出来的每一个字都散发着不可置信的语气
感觉挺无语的, 好歹也是个D轮融资, 拜托hr别这么没见过世面行不行啊
! 15k-20k
需要出差, 去苏州啥的, 而且她觉得我要的高了, 所以没有后续的面试了
有五险, 没有公积金
公司大厅有点空旷, 内部工位感觉人不多的样子, 感觉男面试官对我兴趣不大, 他应该是想招一个熟悉react的开发, 可惜我的主要技术栈是vue, 我原本以为女面试官是个行政/人事, 但是从后续的提问来看竟然是个技术, 小姐姐性格蛮有趣的
! 15k-25k * 14薪
面试我的是一个后端, 我礼貌的询问要不要拉上贵公司前端一起聊一下, 他说不用(那只有一个原因, 那个前端比他还菜)
视频流你了解吗, 大视频的切片上传做过吗, 然后技术总监看我确实没做过这些, 就让我介绍了一下之前公司里面项目的亮点/难点, 然后面试官很认真的听我讲, 并且一起探讨底层逻辑的实现
聊人生, 聊理想, 介绍公司业务规模以及发展前景
HR第二天才通过电话聊得, HR反复询问离职原因, 然后比较强势的问了点个人想法, 然后表示**k给不到, 那就没啥可谈了, 直接拒掉
公司内部真不小, 办公环境明亮, 听介绍这边只是一个类似分部, 总集团在别处, 办公环境确实不错, 技术方面聊得还算ok, 就是hr这边有点咄咄逼人的感觉, 感觉这个hr也想通过各方面角度压薪资
! 15k-30k
一个女的给我摆了一台电脑, 然后里面有个PSD, 是个大屏数据可视化Echarts项目, 然后跟我说复原这个设计稿
我说现场写页面?
她反问你不是前端吗?
我一听这直接就走人了, 设计稿我估摸了一下, 需要写一个下午, 十有八九是个骗代码的
不到10人, 全都窝在角落里, 只贴了一张纸写着技术部, 看上去非常寒酸
那个女的给我打印简历的时候, 技术主管还小声嘟囔着: "3块钱一份呢, 下回别给他们打印简历!"
我是周六去面试的, 他们竟然
周六还在办公
!
! 10-10-5 工作制
console.log(1)
setTimeout(() => {
console.log(2)
Promise.resolve().then(() => console.log(3))
})
new Promise(resolve => {
resolve()
console.log(4)
}).then(() => {
console.log(5)
setTimeout(() => console.log(6))
}).then(() => {
console.log(7)
})
console.log(8)
console.log(a, b, c)
var a = function () {
console.log('1')
}
function b () {
console.log('2')
}
var c = '3'
var a, b, c
console.log(a, b, c)
var name = '1'
function Person (name) {
this.name = name
this.sayHi = function () {
console.log(this.name)
setTimeout(function () {
console.log(this.name)
}, 1000)
}
}
var obj = {
name: '2',
sayHi: () => {
console.log(this.name)
}
}
var p = new (Person.bind(obj, '3'))()
p.sayHi()
let obj = { a: 0 }
function fn (obj) {
obj.a = 1
obj = { a: 2 }
obj.b = 2
}
fn(obj)
console.log(obj)
实现一个流程控制函数, 太复杂了不写了
二叉树求最近的公共祖先节点
实现Foo函数 (我以为是魔改promise底层, 面试官说利用事件循环)
Foo('jack')
// 输出: my name is jack
Foo('jack').sleep(10).eat('food')
// 输出: my name is jack
// 等待10秒
// 输出: eat food
Foo('jack').eat('food').eat('food')
// 输出: my name is jack
// 输出: eat food
// 输出: eat food
Foo('jack').sleepFirst(5).eat('food')
// 等待5秒
// 输出: after 5
// 输出: my name is jack
// 输出: eat food
?> 先是聊笔试题讲解为什么
element-ui
的$message
该如何实现给的(n+5)k*14薪的offer, +800餐补, +1500房补, 各种福利待遇不少, HR诚意满满, 极力的想要我过去
! 965 工作制
没录音太可惜了, 问了很多而且很深入, 除了算法, 感觉所有方面都覆盖到了, js, vue, 小程序, canvas, 浏览器原理, 网络协议, webpack
太可惜了, 我后来才知道这是个大大佬
这个hr很难缠, 问的问题都很刁钻, 感觉像是心理学专业似的
我要了个(n+1)k, 后面hr就开始很诧异的问我要这么高的底层逻辑是什么....
! 14k-28k
! 10-7-5 工作制
openId
hash
chunkhash
contenthash
之间什么区别面试官说加班的频率不低, 并且加班到9点以后只有20块钱的餐补, 五险一金都是最低比例
聊得不太好, 福利待遇非常差, hr想约我一个集团总部的三面, 可惜我突然拿到心仪的offer了, 就把三面拒掉了
我想不通....一个D轮融资的公司, 福利待遇咋这么差劲
! 15k-20k
二面没录音, 记不太清了, 就是聊了聊项目, 然后问了我两个性能优化方案, 第一个使用哈希表减少循环, 第二个使用树状结构提取公共部分即可
好像是产品经理面试, 是周日约的第二趟, 不聊技术, 只聊性格/对公司的期望/未来规划, 还有画饼, 我还以为是HR谈薪资呢, 应该是挂了
感觉这家公司福利待遇一般般, 但是三面还让单独跑一趟, 我往返路程要两个半小时 && 全程就聊了10分钟, 真是服了, 公司好像就两个前端, 办公环境不算大, 也就四五十平的样子, 但是室内光线非常明亮
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.