字节前端实习一二面经
22届985非科班转前端,自学小半年
第一次面试,许愿offer
一面:
自我介绍
vue如何实现数据绑定、数据劫持,进一步问了getter在哪些场景会触发
this的指向问题
原型链讲一下
手写instanceof,用了var,又讲了一下var、let区别
shell命令知道哪些(简历上了一下shell😥)
将一个字符串数组排序
例如: 输入:var versions=['1.45.0','1.5','6','3.3.3.3.3.3.3'] 输出:var sorted=['1.5','1.45.0','3.3.3.3.3.3','6']
给定两个链表,求他们的交叉节点
一面结束休息了10分钟就二面
二面:
自我介绍
http与https区别,https通信过程,安全如何实现的,加密密文怎么做的
行内元素添加宽高会有变化吗,添加padding和margin呢
讲一下死锁,死锁为什么会出现
讲一些浏览器自身的缓存机制,加载一次的网页为什么第二次加载更快
说一些输出顺序,然后讲了原因(宏队列、微队列)
console.log('script start'); setTimeout(function() { console.log('setTimeout'); }, 0); new Promise(function(resolve) { console.log('promise1'); resolve(); }).then(function() { console.log('promise2'); }).then(function() { console.log('promise3'); }); console.log('script end'); // script start -> promise1 -> script end -> promise2 -> promise3 -> setTimeout
0.1+0.2 = ?
实现一个函数可以完成浮点数运算
(现场没写出来,各位大佬看看这个对不对)function(a, b){ return parseFloat((a + b).toFixed(10)) }
手写一下vue的Observer,实现setter、getter绑定
求最大岛屿:
arr = [
[0,0,1,0,1,0],
[0,1,1,0,1,0],
[0,0,1,0,0,0],
[0,0,1,0,0,0],
[0,0,0,0,0,0]
]
return 5
0是海水
1是陆地
求其中最大的岛屿。
- 一枚不规则概率的硬币,如何实现公平事件