【前端面经】腾讯WXG实习一面

电话面:40分钟

背景:双非硕 非科班

官网显示晚上7:30面,7:45面试官打电话过来了

  • 面试官介绍了一下部门情况
  • 自我介绍,接触前端的过程,如何学习前端的,有没有看过什么书,可以实习多久?
  • 聊了聊其中一个项目,为什么做这个?
  • 为什么选Vue,还了解什么框架?对Vue3有了解,那说一下你了解的部分
  • 讲一下页面渲染过程,讲到了V8引擎执行机制,这部分聊了十多分钟
  • 页面白屏如何进行优化?了解gzip吗? -没回答全,就说了下打包
  • html文件加载流程 页面先加载DOM还是CSS
  • 了解闭包吗 谈到了闭包的形成机制以及缺点。
  • 为什么要设计闭包?讲了下纯函数。有没有更实际的应用?讲了下项目中用到的防抖函数(好像还不满意)
  • 给你一个抢茅台的页面,怎么保证用户的公平性?(提示:用算法) 这题没答上,用队列?
  • 又聊回项目,讲项目中遇到的难点。
  • 了解webGL吗? 没用过

面试官说下周换人来面,和他们组技术栈不太匹配 :)

复盘

对于页面白屏的问题,可以从以下几个方面来回答[1]

  • HTTP 请求头中的 Accept-Encoding 头添加 gzip
  • 采用HTTP2 (首部压缩、流量控制、服务器推送)
  • 静态资源CDN
  • 缓存
  • JS文件放在底部,防止阻塞
  • 图片懒加载、雪碧图、采用webp格式图片
  • 服务端渲染

对于抢购页面的设计,可以从以下几个方面回答[2][3]

设计思路:

  • 初始化时调用后台接口获取活动截止时间,与用户当前时间比较,计算剩余时长
  • 开启定时器,根据剩余时长渲染倒计时

方法一:new Date()

由于本地时间用户可以修改,因此不能直接通过本地时间来判断,我们进行时间校验

//首先获取服务器时间
let serverTime = await getServerTime()
//获取本地时间
let clientTime = new Date()
//设定一个时间差
let diff = 5000
if(Math.abs(serverTime-clientTime) > diff){
    //时间有误,禁止访问
}

方法二:通过浏览器提供的performance.now(),与本地时间无关

let t0 = window.performance.now();
doSomething();
let t1 = window.performance.now();
console.log("doSomething函数执行了" + (t1 - t0) + "毫秒.")

了解了基本功能后,我们可以大致实现下

async function getTime(){
    serverTime = await getServerTime()
    localTime = performance.now()
}
function getCurrentTime(){
    // 用(服务端时间+本地时间差值)来模拟当前服务器时间
    return serverTime + (performance.now()-localTime)
}
async function foo(){
    await getTime()
    document.addEventListener("click",()=>{
        let time = getCurrentTime()
        // 用这个时间进行倒计时逻辑处理
})
}
foo()

参考链接:

[1] :前端性能优化 24 条建议
[2] :Javascript实现秒杀倒计时(时间与服务器时间同步)
[3] :前端时间校验与校准

#实习##前端##面试题目##腾讯#
全部评论
请问楼主之前有实习过吗~
点赞 回复 分享
发布于 2022-03-20 13:29
这个7.30是早上还是晚上啊
点赞 回复 分享
发布于 2022-03-17 23:43

相关推荐

04-25 11:27
已编辑
西北工业大学 前端工程师
26暑期实习从拿到🐧厂offer那一刻彻底结束啦,平时喜欢在牛客上刷刷别人的面经,也学习和成长了很多,特此前来还愿,以后有机会也会发自己的一些面经,也希望大家能一起多多学习和交流。本人最早是大二大三开始学习前端,本科时候做了比较多的比赛,主要是负责前端工作。后面熟练了有时候会去网上外包帮做一些项目之类的丰富一下经验,读研后开始是想着转算法or后端,但是奈何算法脑子不够用(主要没有拿得出手的paper)、后端没时间学习(科研的工作跟开发重复度不高)所以研二之后斟酌之后还是回归老本行了,本科使用vue2多,索性也不想再看vue3了 开始转react 断断续续在写一个上线项目。准备春招实习是从今年1️⃣月份开始的,因为过年前几天一直在实验室干活,没有特别多的时间学,把精力主要放在刷算法题上面了,因为可能比较碎片化,有事没事就做一道,听朋友说主要得刷hot100,就主要把代码随想录上和hot100刷完了,因为之前本科练过一段时间acm加有修算法课,没有很hard的题基本上能做出。不过最后才发现,实际前端面试中手撕大多是前端场景相关,大家准备过程可以一块学习的来。不过做题很大的好处,确实在熟悉TS和JS了(hhh因为读研还是写python比较多)2️⃣月开始和朋友一起监督准备 但是那会过年在家确实白天学不进去,大多数时间还是玩了,为了弥补正月初八来了学校,开始正式准备八股,个人建议可以广搜罗网上面经,自己去整理高频八股,我当时找了差不多一百来篇,能涵盖的点已经很多很多了,自己整理的过程比死记硬背可能更好理解一点。可能半个月左右就整完了 此时可能还不全,自己后面开始面试之后可以不断整理补充。同时期,也把之前写的项目拿出来复盘了,主要是本科一个竞赛项目和一个简单上线项目,重点去挖了下难点、创新之类的(好吧hhh其实也没太多)所以当时也有去对一些部分进行优化重写,可算面试前有东西可讲+有项目可演示简历方面拿出了之前推免的简历改了改,找到一个已经在wxg入职的佬帮看了下,给了很多建议!很感谢,but是我不开窍第一版做的很low,hh两个面试官说简历文字太多不想读后,痛改前非,好好重做了一版后面面试顺利多了。(笑死 之前一直纳闷面试官问什么不问我简历那些经历哇 原来只是因为太丑不想读😭)第一份投递是🐧企业微信(提前批)因为确实是第一场,面的很惨,不管是表达八股还是项目,唯一慰藉的是面试官反馈时说代码写的挺不错的。因为当时的想法是科研任务还挺多,一心想去大厂,不然感觉不如直接提前做毕设+准备秋招,所以中途没再投递,继续复习+做科研,就投了一个作业帮。后面认识了个26前端搭子,交流后才发现对方已经投递了很多,已经开始面试了,我心头一热就把内心觉得还不错的厂都投了,3月开始回归正常科研,好在前端东西不多,每天花一点功夫复习即可。周末基本上就是一直在做测评or笔试,断断续续有面试了,腾讯pcg和字节数据都经历了二面被挂,有点心灰意冷,当时已经觉得无所谓了,随缘找,找不到就直接秋招。然后突然一周开始密集起来了,美团、京东、阿里这些厂都开始约面了,心态又发生转变,大数定律总该让我中一个吧,wxg也约了面,一度内心觉得面了也会挂吧hhh,可能就是前面面试的不断复盘,对八股和项目都熟络起来了,这个时候面试开始风向好转了,好像之后的面试除了阿里云一面和字节二面被挂,到现在没被挂过了。(所以大家还是放好心态,不断复盘面试,量变产生质变,都是从小白慢慢成长起来的)总结一些秋招oc情况(先后顺序)1️⃣京东零售2️⃣美团 本地核心商业3️⃣快手电商4️⃣阿里云5️⃣阿里控股6️⃣腾讯wxg!(最终去向)我觉得能走到最后一方面就是多多坚持学习,另外一方面就是心态要好,环境确实变卷了,没有办法改变环境就让自己不断适应咯,希望大家都能拿到满意的offer!(提到心态,确实有个小插曲,因为tx转评估以后一直没发offer,此前我已经拒掉了除阿里以外所有offer,包括虾皮、饿了么一些厂面试发太晚也已拒,手里两个阿里的意向都是今晚到期,有点不想做接了意向又毁的事情,那会没等到腾讯offer,我跟朋友说我准备拒了阿里all in🐧了,大不了从0️⃣开始继续面,我朋友说你心态确实好hhhh然后运气还是光顾我了,今天中午等到了oc,下午就拿到了offer!)附上所有投递情况~希望能和大家一起学习进步哇 后续如果有时间会发发面经hh #软件开发投递记录#  #牛客创作赏金赛#  #前端#
点赞 评论 收藏
分享
05-09 12:05
已编辑
华中科技大学 Web前端
timeline:五天速通,使劲催4.23→4.24→4.27→4.284.23:一面是两个面试官交替拷打,记不太清楚了#拷打项目:    1.讲讲你在过去学到最多最、能体现能力的经历(吟唱)→虚拟加载具体怎么实现的?→如果有更大数据量呢?(虚拟加载和全量加载一起)    2.项目用了websocket,具体怎么用的?(感觉主要想听心跳和重连机制)→和http、https的区别→讲讲http1.0/1.1/2.0    3.项目看你写了负责登录,讲讲具体怎么实现的?(感觉主要想听token机制)→token和session的区别# 下面是八股:    1.输入url到页面显示的过程(吟唱)→ 问我stl过程以及加密算法的具体机制(在准备范围内,就是算法的具体公式说出来就行了)    2.js的find和findindex的区别(findindex没用过,一下子没想起来,直说不会了)→findindex不会,改成了map、weak map、普通对象的区别→提到了js的回收机制,展开讲讲    3.flex布局实现左固定右自适应    4.讲讲js原型和原型链(吟唱,没有追问)# 手撕:    1.两个链表排序(easy)    2.js事件循环输出题(加了async有点坑的那种类型)    3.用promise实现一个setTimeout(easy类型)-------------------4.24二面:全程只有两道手撕算法+一个问题:   1. 给定excel列名,返回相应的列号(比如A是1,AA是27,以及Excel的最大列是XFD)   2. 双向的好友,a是b的好友,那么b一定是a的好友,现在给定一一个用户列表,其中有些用户是好友,有些不是,请判断,这些用户是否可以划分为两组,并且每组内的用户,互相都不是好友。如果能,请给出这个划分。例子1:用户:{1,2,3},好友关系:{1-2,2-3},划分: {1,3} {2}   一个经典二分查找 一个Excel列名获取列号,问了一下最难的项目经历和写过的代码数量,没有追问。然后结束,虽然也有一个小时------------------4.27更新:终于让我催来了面委会,25min飞速结束。而且没有反问,因为我是下午两点半接到电话本来说五点面,答应了,结果三点五十打电话说四点面,我接下来了,估计面试官很忙,面了半个小时快速结束了# 面委会:   1.说说你能提现能力的经历(吟唱就行了)   2.怎么实现pc上两个网页间交互(不会,之前来网上看过,大家都说是纯炫技没啥实用性,我就也不看,结果被问了。只好猜中间桥梁,本地数据交互啥的)   3.怎么设计一个俄罗斯方块网页游戏→怎么优化交互细节→用什么数据结构存储方块间的碰撞   4.面试官给评价,说了优缺点,直接告知会给过,但还需要多学-------------------4.28:11:50收到电话12:00的hr面,30min过,进到录用评估,爱信等了hr面:1.个人介绍2.是怎么想要往前端发展的?3.问项目细节:怎么想到要做商城的?上线了吗?你主要负责什么?你觉得里面有什么能体现你个人能力的部分?这里面有没有对功能和进度的取舍把控?4.平时喜欢什么?(打游戏、户外)5.对自己的评价,优缺点之类的?(优点很容易说,缺点我说的是不擅长应试考试,不喜欢刷题,引申到我绩点不太高保不了研以及我更侧重于技术实践)→那有没有想过怎么克服这个缺点呢?(没克服哈哈哈,我的回答是我很清楚我不想要为了虚无缥缈的成绩违背我自己去刷大量往年题,而且我自己目标很清晰,我想要本科就业,考试只要能有80多分就够了)6.你说你是J人,那如果有那种偏离计划的情况,你会怎么办?(我拿旅游天气突变和我前面的组队项目经历举例子说明了)7.验证一些个人信息over  hr面的回答一定要听清楚问题,hr这边不喜欢答非所问和反复确认,而且一定要逻辑顺畅且自信,同时hr可能不是专业的,很多回答需要自己润色一下变成hr能听懂的,比如说setTimeout最好换成定时器这种说法。以及回答的时候不要太空泛,最好联系到实际例子和项目经历来回答。回答的时候脑子转快一点,快速过一下逻辑,不要给自己留坑,最好callback一下前面的回答,如果能做到这样其实整场面试就能hold住,就是在顺着你的节奏走,通常是能过的。感觉准备暑期的过程中有很多经验,尤其是最后一周在面试技巧上突然顿悟,等下再开个帖子记一下。#牛客AI配图神器#
腾讯二面900人在聊 查看22道真题和解析
点赞 评论 收藏
分享
评论
8
58
分享

创作者周榜

更多
牛客网
牛客企业服务