首页 > 腾讯提前批7面面试总结
头像
AhaAha
编辑于 2020-04-20 09:03
+ 关注

腾讯提前批7面面试总结

腾讯(PCG移动商业产品部)初试

1.自我介绍!!!

2.在这么多的项目中你最熟悉的是什么?

3.能详细说明一下你是怎么通过设置请求头解决了缓存问题吗?

追问:使用了标准http请求头之后还是会偶现数据没更新对吗?有没有考虑过可能是说因为你之前没有加过头,后面加了以后浏览器又把之前的头给缓存下来了呢?
主要考察http缓存

4.在这个项目中有没有用到登录这个功能?

追问:怎么实现登录呢?

追问:让你做一个登录的页面,你会怎么做呢?(比如登录之后,我去请求购物车,为什么我能返回来的是自己的购物车,而不是别人的?)

使用token认证机制

5.假设界面显示价格为9.99元,现在我去拉取了后台的价格,现在数据为8.88元。当你把数据设置为8.88后再到页面显示成8.88元。在这个期间你了不了解vue帮你做了什么事情?

双向数据绑定+发布订阅者监听+虚拟dom(diff算法)+生命周期钩子(beforeupdate、update)

6.用过哪些es6语法?

追问:数组里面新加的方法你有用过哪些?

7.https(传输过程是安全的,但是怎么解决密钥本身是安全的呢?使用证书的机制解决这个问题)

最后一道编程题:

三次重试:假设有一个函数名为job,调用job后会执行一些异步任务,并返回一个Promise,但job执行的异步任务任务有可能会失败

请实现函数retry,把job作为retry函数的参数传入,当retry执行后会尝试调用job,如果job返回成功(即Promise fulfilled),则retry函数返回job函数的返回内容;

如果job返回失败(即Promise rejected),retry函数会再次尝试调用job函数。

如果job连续三次均返回失败,retry则不再尝试调用,并返回其最后一次失败的内容。

 function job() {
            return new Promise(function (resolve, reject) {
                setTimeout(function () {
                    var num = Math.ceil(Math.random() * 20); //生成1-10的随机数
                    console.log('随机数生成的值:', num)
                    if (num <= 1) {
                        console.log('符合条件,值为' + num)
                        resolve(num);
                    }
                    else {
                        reject('数字大于1了执行失败');
                    }
                }, 2000);
            })
        }

        function retry(job, times, delay) {
            return new Promise(function(resolve, reject){
                function attempt() {
                    job().then(num => {
                        resolve(num);
                    }).catch(function (err) {
                        console.log('还有', times - 1, '次尝试');
                        if (0 == times - 1) {
                            reject(err);
                        } else {
                            times--;
                            setTimeout(attempt(), delay);
                        }
                    })
                }
                attempt();
            })
        }

        retry(job, 3, 1000).then(result => {
            console.log(result);
        }).catch(err => { console.log(err); });

或者

        function job() {
            return new Promise(function (resolve, reject) {
                setTimeout(function () {
                    var num = Math.ceil(Math.random() * 20); //生成1-10的随机数
                    console.log('随机数生成的值:', num)
                    if (num <= 10) {
                        console.log('符合条件,值为' + num)
                        resolve(num);
                    }
                    else {
                        reject('数字大于10了执行失败');
                    }
                }, 2000);
            })
        }

        async function retry(job, times) {
            for (let i = 0; i < times; i++) {
                try {
                    return await job();
                    break;
                } catch(err){
                    if(i == times-1){
                        return err;
                    }
                }
                finally {
                    console.log('还有', times - i - 1, '次机会');
                }
            }
        }

        retry(job, 3).then(num => { console.log(num) })
腾讯第二次初试
1.考研?

2.fastClick原理

3.点击穿透

4.图片懒加载原理(节流是什么)

5.介绍一下mvvm(从双向绑定原理开始讲)(怎么监听数组的变化?)

6.使用闭包实现变量自加一

7.setTimeout第二个参数为0时和匿名自执行函数区别

8.微任务有哪些?

9.你是怎么压缩图片的?

10.你是怎么实现瓦片绘制的?为什么在ios下会出现200万像素绘制不了的情况?

11.数组和链表的区别?

12.cookied和session的区别

13.nodejs中的require原理

14.webpack中如何实现按需加载的

腾讯(PCG动漫)初试

1.tcp三次握手

2.网络攻击(xss、csrf)

3.性能优化(懒加载、缓存、重排重绘)

4.闭包

5.cookie和localstorage区别

6.http状态码

7.在地址栏里输入一个url到这个页面呈现出来,会发生什么?
DNS解析-tcp三次握手-http连接传输数据-服务端处理(返回304或200)-解析渲染dom
8.跨域方案

9.手机适配你会怎么做?(媒体查询、rem、vwvh)

10.你未来的方向和目标

11.最近都有再看什么书?(现代前端技术解析、js高级编程、html5和css3响应式)
腾讯(PCG动漫)复试(主要针对自己的个人项目,这里我只是记录下所问的问题,读者可以不必看)
1.介绍你做过的项目(为什么移动端和PC端要分开写)
2.你在项目中具体做了什么?
3.移动页面的复杂度在哪里?有具体案例吗?解决方案是怎么获取的?
4.图片压缩后台怎么实现你知道吗?怎么牺牲图片的画质呢?
5.输入 有做什么安全处理吗?(xss攻击,常见的字符转义处理有哪些?)
6.工作室技术
7.PC浏览器的分布?主流浏览器的版本
8.本地存储你有做什么特别处理吗?
9.缓存问题,Etag和IF-modify-since是怎么来的?
10.你使用的传输协议是什么?
11.谈谈你对nodejs的理解
12.Express+monogose
13.你是怎么开始构建一个项目的?
14.前端开发优势和不足?(不足你是怎么提升的?最近一次让你印象深刻的问题)
15.你遇到最难的问题是什么?
16.对你未来的规划?
17.技术相关的其他爱好
腾讯(医疗健康部门UI开发)初试
做了一个简单页面上交
腾讯(医疗健康部门UI开发)复试
复试一般问项目难点和你解决的思路,然后面试官介绍了一下自己的部门情况
没有问技术相关的知识点
腾讯(医疗健康部门UI开发)hr面
1.你前面面试过很多部门,那么你觉得你自己面试失败的原因是什么?
2.有考虑过考研吗?没想过读了研究生之后再来找工作吗?
3.比起研究生硕士你觉得你的优点在哪里?我们为什么要选你?
4.对你的岗位有什么期待?
5.你遇到最具有挑战的事情?
6.你有什么爱好吗?
7.你理想的工作地点
8.你还有什么要问我的吗?

更多模拟面试

全部评论

(3) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐