12.7 字节前端一面面经
typeof null typeof undefined
你觉得你做的项目里面,哪个更具有挑战性 v
websocket的具体实现 v
是怎么通信的(聊了一下发布订阅者) v
服务端怎么识别到你要建立连接呢? v
你刚说到了tcp,那tcp的通信过程是怎么样的呢? v
三次握手,四次挥手 v
聊了一下DNS v
递归跟迭代有什么差别 v
浏览器输入url之后,首先会到哪里拿ip v
然后呢 v
最后呢 v
原型链的问题 v
this的指向 x
window.name = 'hello' function Foo() { console.log(this) this.name = 'bar' this.getName = function(){ return this.name } } const { log } = console; let foo = new Foo() let getName = foo.getName log(foo.getName()) log(getName()) log(Foo.bind(foo).getName)
- var,let v
for(var i = 0; i<3; i++){ setTimeout(()=>{ console.info(i) },1000) } // 3 3 3 同时输出
有多少种判断类型的方法 (
typeof
insatnceof
Object.prototype.toString.call()
) v__proto__
,prototype
v事件的循环 v
看代码说输出 v
new的时候发生了什么 (危)
括号匹配 v
const check = (str) =>{ const n = str.length; if( n<=1 ) return false; const pair = { '}' : '{', ']' : '[', ')' : '(' } const stack = [] for(let val of str) { // console.log(stack[stack.length - 1], pair[val]) if(stack.length < 1 ) { stack.push(val) } else if ( stack[stack.length - 1] === pair[val] ) { stack.pop() } else { stack.push(val) } } // console.log(stack) return stack.length === 0; } const a = "[{()}]" const b = "}[]" console.log( check(a) ) console.log( check(b))
- 树的深度 v
const check = (arr) =>{ if( !Array.isArray(arr)) return 0; const n = arr.length; let i=0; for(i; ; i++) { if(2**i > n) break; } return i; } const root1 = [1,2,3] const root2 = [1,2,3,null,null,4] const { log } = console; log( check(null) ) log( check(root1) ) log( check(root2) )
- 树的最小深度 (dfs, bfs实现)( 没有debug,面试官说思路对了 )
// 节点类型, function TreeNode(val,left, right) { this.val = val ?? 'undefined' this.left = left ?? [] this.right = right ?? [] }
还有很多常规问题忘了,面试官提前了十分钟进入视频,没有开到录音,血亏
#字节跳动前端实习面经##字节跳动##面试题目#