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 同时输出 有多少种判断类型的方法 (
typeofinsatnceofObject.prototype.toString.call()) v__proto__,prototypev事件的循环 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 ?? []
} 还有很多常规问题忘了,面试官提前了十分钟进入视频,没有开到录音,血亏
#字节跳动前端实习面经##字节跳动##面试题目#
查看22道真题和解析
