腾讯、华为2021前端技术岗发布+最新内部面试题

金三银四在即,各互联网大厂抛出**海量前端hc**! 腾讯、华为作为一线大厂,无论是薪资水平还是职业成就感,都是无数技术人向往的企业。很多小伙伴想利用这次机会去试一试,下面我来介绍一下腾讯、华为技术岗的**职级体系**及前端的**岗位要求**。 此外,在文末还有分享:由**腾讯和华为的内部同事总结的完整面试题。**希望大家了解并掌握这些知识点,争取通过每一轮面试!  ![腾讯职级体系为 14 级( 4-17 级)](https://upload-images.jianshu.io/upload_images/24944724-761536f3cbf2486d?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## 腾讯薪资架构: 12+1+1= 14 薪,腾讯标准薪资是 14 薪,但是通常能拿到 16-20 薪。年终奖看部门盈利情况,一般是 3 个月。 ## 腾讯对前端技术岗的要求: * 3年以上web开发经验。 * 熟悉TCP/IP,HTTP/HTTPS等网络协议,熟悉网络通信基本原理。 * 精通原生JavaScript和DOM API。 * 熟练掌握HTML5/CSS3等相关技术。 * 熟练掌握React、Vue等一种以上的前端框架,熟悉Webpack,Babel等打包构建工具,具备NodeJS开发经验。 * 熟练掌握设计模式,具备良好的代码规范意识。 ![华为职级体系为13-22级](https://upload-images.jianshu.io/upload_images/24944724-4edc8f2fd2601d36?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## 华为薪资架构 华为任职资格和技术等级是挂钩的,规定为技术等级+13=任职资格,如技术等级3A,任职资格为3A+13=16A。大部分华为员工在18级以内,通常华为工作十年的普通员工大概在16-17级左右,薪酬约为60万-70万。 ## 华为对前端技术岗的要求: 1.熟悉前端开发工作流,打包构建工具,如gulp/webpack等 2.至少熟悉三大框架之一-及其原理,Angular/Vue/React 3.熟悉常用的数据结构和算法,基础扎实,htmI/ css/javascript前端基础熟练掌握 加分项:开源项目贡献者,熟悉Angular/ Typescript技术栈,有U|组件库开发经验,性能优化经验,熟练掌握一门后端语言。 ## 最新腾讯、华为内部面试题 ### HTML * HTML5新特性,语义化 * 浏览器的标准模式和怪异模式 * xhtml和html的区别 * 使用data-的好处 * meta标签 * canvas * HTML废弃的标签 * IE6 bug,和一些定位写法 * css js放置位置和原因 * 什么是渐进式渲染 * html模板语言 * meta viewport原理 ![](https://upload-images.jianshu.io/upload_images/24944724-6337b1c72cd05811.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ### CSS * 盒模型,box-sizing * CSS3新特性,伪类,伪元素,锚伪类 * CSS实现隐藏页面的方式 * 如何实现水平居中和垂直居中。 * 说说position,display * 请解释*{box-sizing:border-box;}的作用,并说明使用它的好处 * 浮动元素引起的问题和解决办法?绝对定位和相对定位,元素浮动后的display值 * link和@import引入css的区别 * 解释一下css3的flexbox,以及适用场景 * inline和inline-block的区别 * 哪些是块级元素那些是行级元素,各有什么特点 * grid布局 * table布局的作用 * 实现两栏布局有哪些方法? * css dpi * 你知道attribute和property的区别么 * css布局问题?css实现三列布局怎么做?如果中间是自适应又怎么做? * 流式布局如何实现,响应式布局如何实现 * 移动端布局方案 * 实现三栏布局(圣杯布局,双飞翼布局,flex布局) * 清除浮动的原理 * overflow:hidden有什么缺点? * padding百分比是相对于父级宽度还是自身的宽度 * css3动画,transition和animation的区别,animation的属性,加速度,重力的模拟实现 * CSS 3 如何实现旋转图片(transform: rotate) * sass less * 对移动端开发了解多少?(响应式设计、Zepto;@media、viewport、JavaScript 正则表达式判断平台。) * 什么是bfc,如何创建bfc?解决什么问题? * CSS中的长度单位(px,pt,rem,em,ex,vw,vh,vh,vmin,vmax) * CSS 选择器的优先级是怎样的? * 雪碧图 * svg * 媒体查询的原理是什么? * CSS 的加载是异步的吗?表现在什么地方? * 常遇到的浏览器兼容性问题有哪些?常用的hack的技巧 * 外边距合并 * 解释一下“::before”和“:after”中的双冒号和单冒号的区别 ![](https://upload-images.jianshu.io/upload_images/24944724-9150dcc28c337e1c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ### JS * js的基本类型有哪些?引用类型有哪些?null和undefined的区别。 * 如何判断一个变量是Array类型?如何判断一个变量是Number类型?(都不止一种) * Object是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的? * JS常见的dom操作api * 解释一下事件冒泡和事件捕获 * 事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何组织默认事件? * 对闭包的理解?什么时候构成闭包?闭包的实现方法?闭包的优缺点? * this有哪些使用场景?跟C,Java中的this有什么区别?如何改变this的值? * call,apply,bind * 显示原型和隐式原型,手绘原型链,原型链是什么?为什么要有原型链 * 创建对象的多种方式 * 实现继承的多种方式和优缺点 * new 一个对象具体做了什么 * 手写Ajax,XMLHttpRequest * 变量提升 * 举例说明一个匿名函数的典型用例 * 指出JS的宿主对象和原生对象的区别,为什么扩展JS内置对象不是好的做法?有哪些内置对象和内置函数? * attribute和property的区别 * document load和document DOMContentLoaded两个事件的区别 * === 和 == , [] === [], undefined === undefined,[] == [], undefined == undefined * typeof能够得到哪些值 * 什么是“use strict”,好处和坏处 * 函数的作用域是什么?js 的作用域有几种? * JS如何实现重载和多态 * 常用的数组api,字符串api * 原生事件绑定(跨浏览器),dom0和dom2的区别? * 给定一个元素获取它相对于视图窗口的坐标 * 如何实现图片滚动懒加载 * js 的字符串类型有哪些方法? 正则表达式的函数怎么使用? * 深拷贝 * 编写一个通用的事件监听函数 * web端cookie的设置和获取 * setTimeout和promise的执行顺序 * JavaScript 的事件流模型都有什么? * navigator对象,location和history * js的垃圾回收机制 * 内存泄漏的原因和场景 * DOM事件的绑定的几种方式 * DOM事件中target和currentTarget的区别 * typeof 和 instanceof 区别,instanceof原理 * js动画和css3动画比较 * JavaScript 倒计时(setTimeout) * js处理异常 * js的设计模式知道那些 * 轮播图的实现,以及轮播图组件开发,轮播10000张图片过程 * websocket的工作原理和机制。 * 手指点击可以触控的屏幕时,是什么事件? * 什么是函数柯里化?以及说一下JS的API有哪些应用到了函数柯里化的实现?(函数柯里化一些了解,以及在* 函数式编程的应用,最后说了一下JS中bind函数和数组的reduce方法用到了函数柯里化。) * JS代码调试 ![](https://upload-images.jianshu.io/upload_images/24944724-ff97045158cd5d6c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ### 框架 * 使用过哪些框架? * zepto 和 jquery 是什么关系,有什么联系么? * jquery源码如何实现选择器的,为什么$取得的对象要设计成数组的形式,这样设计的目的是什么 * jquery如何绑定事件,有几种类型和区别 * 什么是MVVM,MVC,MVP * Vue和Angular的双向数据绑定原理 * Vue,Angular组件间通信以及路由原理 * react和vue的生命周期 * react和vue的虚拟dom以及diff算法 * vue的observer,watcher,compile * react和angular分别用在什么样的业务吗?性能方面和MVC层面上的区别 * jQuery对象和JS的Element有什么区别 * jQuery对象是怎么实现的 * jQuery除了它封装了一些方法外,还有什么值得我们去学习和使用的? * jQuery的$(‘xxx’)做了什么事情 * 介绍一下bootstrap的栅格系统是如何实现的 ![](https://upload-images.jianshu.io/upload_images/24944724-24fdd1a0763e9425.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ### 浏览器相关 * 跨域,为什么JS会对跨域做出限制 * 前端安全:xss,csrf... * 浏览器怎么加载页面的?script脚本阻塞有什么解决方法?defer和async的区别? * 浏览器强缓存和协商缓存 * 浏览器的全局变量有哪些 * 浏览器同一时间能够从一个域名下载多少资源 * 按需加载,不同页面的元素判断标准 * web存储、cookies、localstroge等的使用和区别 * 浏览器的内核 * 如何实现缓存机制?(从200缓存,到cache到etag再到) * 说一下200和304的理解和区别 * 什么是预加载、懒加载 * 一个 XMLHttpRequest 实例有多少种状态? * dns解析原理,输入网址后如何查找服务器 * 服务器如何知道你? * 浏览器渲染过程 * ie的某些兼容性问题 * session * 拖拽实现 * 拆解url的各部分 ![](https://upload-images.jianshu.io/upload_images/24944724-2847948f0be75022.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ### 面试题完整文档划到文末直接免费领取。 ### ES6 * 谈一谈 promise * 所有的 ES6 特性你都知道吗?如果遇到一个东西不知道是 ES6 还是 ES5, 你该怎么区分它 * es6的继承和es5的继承有什么区别 * promise封装ajax * let const的优点 * es6 generator 是什么,async/await 实现原理 * ES6和node的commonjs模块化规范区别 * 箭头函数,以及它的this ### 计算机网络 * HTTP协议头含有哪些重要的部分,HTTP状态码 * 网络url输入到输出怎么做? * 性能优化为什么要减少 HTTP 访问次数? * Http请求的过程与原理 * https(对是https)有几次握手和挥手?https的原理。 * http有几次挥手和握手?TLS的中文名?TLS在哪一网络层? * TCP连接的特点,TCP连接如何保证安全可靠的? * 为什么TCP连接需要三次握手,两次不可以吗,为什么 * 为什么tcp要三次握手四次挥手? * tcp的三次握手和四次挥手画图(当场画写ack 和 seq的值)? * tcp与udp的区别 * get和post的区别?什么情况下用到? * http2 与http1 的区别? * websocket * 什么是tcp流,什么是http流 * babel是如何将es6代码编译成es5的 * http2的持久连接和管线化 * 域名解析时是tcp还是udp * 域名发散和域名收敛 * Post一个file的时候file放在哪的? * HTTP Response的Header里面都有些啥? ### 工程化 * 对webpack,gulp,grunt等有没有了解?对比。 * webpack的入口文件怎么配置,多个入口怎么分割。 * webpack的loader和plugins的区别 * gulp的具体使用。 * 前端工程化的理解、如何自己实现一个文件打包,比如一个JS文件里同时又ES5 和ES6写的代码,如何编译兼容他们 ### 模块化 * 对AMD,CMD,CommonJS有没有了解? * 为什么要模块化?不用的时候和用RequireJs的时候代码大概怎么写? * 说说有哪些模块化的库,有了解过模块化的发展的历史吗? * 分别说说同步和异步模块化的应用场景,说下AMD异步模块化实现的原理? * 如何将项目里面的所有的require的模块语法换成import的ES6的语法? * 使用模块化加载时,模块加载的顺序是怎样的,如果不知道,根据已有的知识,你觉得顺序应该是怎么样的? ### Nodejs * 对nodejs有没有了解 * Express 和 koa 有什么关系,有什么区别? * nodejs适合做什么样的业务? * nodejs与php,java有什么区别 * Nodejs中的Stream和Buffer有什么区别? * node的异步问题是如何解决的? * node是如何实现高并发的? * 说一下 Nodejs 的 event loop 的原理 ### 数据结构 * 基本数据结构:(数组、队列、链表、堆、二叉树、哈希表等等) * 8种排序算法,原理,以及适用场景和复杂度 * 说出越多越好的费波拉切数列的实现方法? ### 性能优化 * cdn的用法是什么?什么时候用到? * 浏览器的页面优化? * 如何优化 DOM 操作的性能 * 单页面应用有什么SEO方案? * 单页面应用首屏显示比较慢,原因是什么?有什么解决方案? ### 其他 * 正则表达式 * 前端渲染和后端渲染的优缺点 * 数据库的四大特性,什么是原子性,表的关系 * 你觉得前端体系应该是怎样的? * 一个静态资源要上线,里面有各种资源依赖,你如何平稳上线 * 如果要你去实现一个前端模板引擎,你会怎么做 * 知道流媒体查询吗? * SEO * mysql 和 mongoDB 有什么区别? * restful的method解释 * 数据库知识、操作系统知识 * click在ios上有300ms延迟,原因及如何解决 * 移动端的适配,rem+媒体查询/meta头设置 * 移动端的手势和事件; * unicode,utf8,gbk编码的了解,乱码的解决 ### 三面、四面常问的开放性问题 * 你都看过什么书?最近在看什么书? * 用过什么框架?有没有看过什么框架的代码? * 有没有学过设计模式? * 说一说观察者模式吧!能不能写出来? * 你最大的优点是什么?那你最大的缺点呢? * 你大学期间做过最疯狂的事情是什么? * 你除了写博客还有什么输出? * 现在你的领导给你了一份工作,要求你一个星期完成,但你看了需求以后估计需要3周才能完成,你该怎么办? * 平时关注的前端技术 * 如何规划自己的职业生涯 * 项目过程中,有遇到什么问题吗?怎么解决的? * 最近在研究哪方面的东西? * 请介绍一项你最热爱、最擅长的专业领域,并且介绍的学习规划。 * 请介绍你参与的印象最深刻的一个项目,为什么?并且介绍你在项目中的角色和发挥的作用。 ### HR面 * 你为什么要学习前端? * 你平时的是怎么学习前端的?有什么输出? * 你觉得自己最好的项目是什么? * 身边比较佩服的人有什么值得你学习的?你为什么没有跟他们一样? * 同事的什么问题会让你接受不了 * 压力最大的事情是什么? * 和同学做过的最好的项目? * 身边的朋友通常对你的评价是什么 * 喜欢什么样的工作氛围 * 如何看待加班 * 有没有对象 * 意向城市 * 其他的offer * 为什么要录取你? * 大学里花费时间最多的三件事情 * 周末都会干什么? * 未来职业规划 ### 建议 * 面试的时候不要表现出自己想创业。敲黑板。 * 从来没有看过源码的话,建议从jQuery,zepto这之类的源码入手,后期可以了解Vue,React常见的功能的源码思路和实现。 * 项目经验描述的时候不用太太太详细,拣重点的讲。 #### **由于篇幅有限,只能分享部分面试题,完整版面试题及答案可以[【点击我】](https://jq.qq.com/?_wv=1027&k=SBb7oFqq)阅读下载哦~无偿分享给大家**
posted @ 2021-02-26 21:04  Android程序员吴彦祖  阅读(548)  评论(0编辑  收藏  举报