成都晓多科技—社招一面(1小时)

1.个人介绍

2.项目介绍和工作内容

3.项目里面如何检测性能?性能优化手段有哪些?你在项目里面用到了哪些?详细说说

4.事件循环?为什么会有事件循环?同步异步,然后看一道事件循环相关的例题

5.Promise了解吗?promise.all ? 还知道promise一些方法吗?

6.for in和for of的区别?原型和原型链?为什么for in打印出来的属性没有原型和原型链上面的属性?

7.作用域和作用域链

8.react了解吗

9.什么是响应式?双向绑定?

10.深拷贝和浅拷贝?如何避免循环引用?

11.一道和nodeJS相关的输出结果题,就是nodeJS里面嵌套引用,最终输出什么结果,忘了题目。ES模块化了解吗?

12.网络安全

13.缓存

14.vue里面的$set(value)有什么用?为什么会出出现这个方法?

15.Vue和React中的虚拟Dom了解吗

16.你会在Vue的哪个生命周期发送请求?

17.如何知道原型链上的属性是否是可枚举的呢?如何把不可枚举的属性变成可枚举的呢?

手撕题目给了三题, 我选了比较简单的手撕深拷贝,另外两题,一题是缓存的没看懂题目,另一题是手撕Promise.all,深拷贝还算经典,只要把数据类型全部考虑进去就行,还要考虑上面面试题里面说的循环引用

function deepClone(obj, hash= new Map()){
    //基础数据类型,直接返回拷贝对象
    if(obj ===null || typeof obj !=='object'){
        return obj
    }
    //避免重复引用
    if(hash.has(obj)){
        return hash.get(obj)
    }
    let newObj 
    //判断数组、日期、正则、对象类型
    if(Array.isArray(obj)){
        newObj = []
    }else if(obj instanceof Date){
        newObj = new Date(obj)
    }else if(obj instanceof RegExp){
        newObj = new RegExp(obj)
    }else{
        newObj = {}
    }
    //缓存克隆
    hash.set(obj,newObj)
    //递归循环克隆属性
    for(let key of Object.keys(obj)){
        //只取自身属性,不取原型链
        if(obj.hasOwnProperty(key)){
            newObj[key]=deepClone(obj[key], hash)
        }
    }
    return newObj
}

let objA
objA = {name:'张三',arr:[1,{prop:'测试'}]}
let objB = deepClone(objA)

console.log(objA)
console.log(objB)

后面就是反问环节。还算可以,比较经典的面试题,牛油们共勉!

#晓多科技##前端##社招##面经#
全部评论
我要面这家的实习了,好紧张
点赞 回复 分享
发布于 昨天 22:04 四川
前端还有手撕?我后端面了四轮都没有手撕,hr头像都一个人,感觉开的不高,好纠结
点赞 回复 分享
发布于 今天 11:24 江苏
我昨天一面 不知道能不能过
点赞 回复 分享
发布于 今天 13:23 天津
有没有AI开发工程师的面经
点赞 回复 分享
发布于 今天 15:02 上海

相关推荐

评论
点赞
2
分享
牛客网
牛客企业服务