前端面试题---小米(总结知识点)2

小米面试题

1、git常用的命令

2、当git merge发生冲突的时候怎么做

3、提到的图片懒加载,怎么实现,视频懒加载???

4、在一个页面中还有什么提升页面性能的方式呢

5、怎么处理跨域问题,工作中用的多的是什么方式

6、使用代理的时候,出现了跨域 cookie没有带上怎么办

7、要实现可以在弹框中打开多个弹窗,就像是一个多层级的弹框窗口,怎么做

8、ES6的属性

9、let 和 const,为什么const不能变,怎么实现一个const????

10、箭头函数和function区别

11、闭包,用的多吗

12、有用什么原生函数,是用闭包实现的

13、比如bind之类的有用过吗,先说一下bind、apply、call有什么区别吧

14、用原生实现一下bind

15、es5的继承,es6的继承

16、怎么实现跨域啊,上线的项目怎么实现跨域

17、有封装过组件吗,封装过什么组件,怎么做的

18、webpack有用过吗,webpack提供了哪些能力

19、webpack去打包一个js文件的时候,打包出来的js发现太大了,这样加载时间太长,导致白屏时间过长,有什么解决方式

20、let、const、var的区别,块级作用域

21、var变量提升相关(给了一段代码说出各项打印值)

22、箭头函数与普通函数区别,arguments本质是什么,写一个例子

23、构造函数与继承的区别, this的指向问题(给了一段代码指出打印的this值)

24、依次打印下列值,说明执行顺序原因

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

console.log(1);

setTimeout(function(){

 console.log(2);

},0)

new Promise(()=>{

 console.log(3)

 setTimeout(function(){

 console.log(4);

},0)          

}).then(()=>{

 console.log(5)       

})

setTimeout(function(){

 console.log(6);

},0)

25、 事件冒泡与事件捕获,给出一个场景问如何实现

26、cookie与webStorage的区别?cookie适合用作存储嘛,为什么?

27、vue双向绑定的实现原理?

28、vue中如何监听数组?如何监听对象?

29、js有哪些数据类型,存储方式与调用有什么区别?

30、项目中实现登录的具体过程

31、rem 与 em的区别

32、有小程序开发经验嘛?

33、实现100vh中,上、下div固定,中间div高度自适应

34、css哪些属性是默认继承的

35、给数组对象添加一个findDuplicate(n)方法,用于返回该数组中出现频率>=n的元素列表

36、CORS的处理,请求分类

37、跨域如何带cookies

38、cookies权限设置

39、cache-control

40、浏览器缓存

41、事件委托,写法兼容性

42、事件监听

43、css动画实现

44、vue双向绑定,函数式组件

45、em rem、dpi,物理像素,px 区别

46、移动端适配

47、promise 相关问题

48、实现多个promise顺序执行,promise中有异步操作 (手写)

49、原型链继承和组合继承 (手写)

50、判断基本类型和引用类型

51、深拷贝 (手写)

52、layout书写

53、sticky是什么

54、position属性

55、es6说五个新特性

56、<子代选择器和 空格区别

57、reflow和repaint区别

58、fetch是什么

59、promise手写

60、捕获阶段、冒泡阶段 原生js实现

61、ajax手写

62、ajax的state和status区别

63、get、post区别

64、节流、防抖区别,手写

65、数组拍平

66、splice用法

67、对象的解构使用方法

68、asncy-await 代码

69、箭头函数和普通函数的区别

70、HTTP的请求头和响应头

71、块状元素怎么垂直水平居中

72、冒泡函数原理

73、webpack常用配置参数

74、同源政策

75、JSONP

76、原型链指向

77、用户代理(user-agent)你了解吗

78、a组件怎么传给e组件 -- 做题

嵌套关系如下:

1

2

3

4

5

6

7

8

9

<a>

    <b>

        <c>

            <d>

                <e></e>

            </d>

        </c>

    </b>

<a>

79、有没有用过vue-router和react-router

80、实现一个两栏布局(不止一种方法)

81、实现1个方法find(arr, str),给定字符串数组和子串,查找并返回arr中所有包含子串str的字符串

82、数组扁平化

83、实现1个方法,查找整型数组中第2大的元素并返回。(注意考虑重复元素的情况)

84、给定1个URL数组,分别实现并发及顺序依次执行请求,请求函数为fetch(url)

85、实现1个方法func(work, interval)包装work方法,使work方法在interval间隔内最多执行1次

86、实现一个函数 add(stringNum1, stringNum2),实现对两字符串数值的相加,如 add('1', '9999'),输出'10000'。(leetcode原题,注意优化)

87、实现一个函数 curry,使满足以下场景:

1

2

3

4

5

function add(a, b, c) { console.log(a + b + c) }

const curriedAdd = curry(add)

curriedAdd(1)(2)(3) // output 6

curriedAdd(1)(2, 3) // output 6

curriedAdd(1, 2, 3) // output 6

 88、说说https,https是怎么加密的?https加密过程

89、数组展开

90、写一个方块平移动画

91、translate,transform,transition区别

92、let a=1;const a=2;a=10 输出什么

93、map foreach 不同点

94、new和super的具体过程

95、继承

Person类 属性: name 方法say

Student类 属性: grade 方法 goschool

实现new student 调用方法分别输出name 和 grade

96、localStorage、sessionStorage、Cookie不同点

97、列举http header

98、原生js实现模态对话框

99、手写一个双向绑定

100、双栈排序

请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。

101、手写promise函数

102、从输入一个url到浏览器页面展示都经历了哪些过程? Dns查询、三次握手、http请求

103、new生成一个对象的过程: 核心就是return this啊

104、请简单说明什么是事件冒泡和事件捕获以及事件委托 这个答案太直白了,不多提了 然后就是来点css了

105、请实现一个两边宽度固定中间自适应的三列布局。 不多提:圣杯布局、双飞燕

106、flex布局有没有了解?

107、请简单叙述一下原型链s 从prototype、隐式的_proto_、constructor再到修改原型链的内容会导致的影响。这一块还是比较熟的

108、ES6了解吗?请简单说一下promise机制 异步的承诺机制、顺势说了一下解决回调地狱的问题

109、手写一下深拷贝: 这个告诉各位看官一个简单粗暴的加分方法 JSON.parse(JSON.stringify(obj)) 用JSON实现深拷贝

110、==与===的区别 typeof null的结果是什么

111、如何改变this的指向, 当然是call、aplly、bind,紧接着问了一个这之间的区别

112、说一下如何实现闭包

113、同步与异步的执行顺序

114、get与post的请求的区别

115、什么情况算是跨域?如何解决跨域问题?

116、一个有序的数组进行查找操作?(手写) 别说了,二分查找开始吧

117、手写一个快速排序 你看归并排序行吗?好吧不行.之后就开始了数据结构、算法、

118、设计一个花瓣展开的加载效果

119、说一下常见的响应头

120、jQuery的功能,作用

121、var、let、const的区别

122、inline-block的元素用flex怎么水平居中

123、Vue的生命周期

124、说一下class,什么声明可以使用class

125、CORS是什么,怎么实现的,在响应头还是请求头设置,设置什么?

126、transition和animation的区别

127、说一下五层协议结构是哪五层

128、TCP、UDP、IP、HTTP在哪一层

129、如果catch返回了一个数据,后面的then还会执行吗?

130、设置left有什么前提要求

131、flex实现一个两栏布局

132、Person.bind(this)返回什么

133、状态码301、302、403、500,504

132、说一下Promise,有哪些状态,状态有什么特点

133、实现水平居中(margin:0 auto没答上)

134、讲一下缓存,cache-control是什么,静态文件的web缓存机制

135、AJAX产生背景,优势,原理

136、缓存 后端缓存、前端缓存机制、http协议缓存机制

137、实现on 和trigger

138、三列布局 flex如何三列布局

139、事件循环(经典promise和setTimeout)

140、双等三等区别,px, em, rem,let const var

141、首屏优化

142、H5语义化标签的优点

143、强缓存和协商缓存

144、_proto_和prototype的区别(我说完还想延深说一下原型链,结果面试官说没事,不用说了,你答的可以了。。)

145、vue cli创建项目会有package.json文件,里面都有什么,如何配置。

146、SEO知道吗,我答了概念,感觉不是很好,我就扯到了之前写项目用vue cli不利于SEO的问题,然后说了使用Nuxt解决。还说了iframe也不利于SEO争取一点是一点。。

147、如果现在向一个div里面插入1000个div如何实现,我说了append1000个,他反问你了解过一种技术叫..(忘了。没见过,a开头的一个单词好像)

148、vuex给vue带来的优点和它的一些缺点

149、重绘重排,重绘在什么时候发生(当时答完又说了如何避免重排尽量重绘)

150、跨域的解决方案,主要问了jsonp(但是我用的是反向代理比较多)

我说了jsonp的原理,然后问我主要用了script标签的哪个属性,扑街(没怎么用过是硬伤)

151、居中垂直,子div没有高度宽度

152、nodejs用了什么(答搭服务器)有没有跨域问题怎么解决

153、双向绑定的原理,要答仔细(我吃亏在说了大概,用了什么方法,用了什么设计模式)

154、闭包原理,闭包的坏处

155、vue中设置key值的作用

156、打包优化,被问到vue怎么做异步加载(我说的是用.webpack的chunk语法加上vue的import()函数,不知道蒙对了没有)??

157、 http使用keep-alive后,如何将响应报文与请求报文一一对应(不能通过cookie来判断)

158、如何模拟一个map,

159、map及weakmap的区别,及weakmap的使用场景

160、原声js修改页面与vue修改页面的性能比较,还要分析原因,以及原声js优化到极致后与vue的性能比较

161、解析渲染dom过程

162、前端性能优化

163、less的css预处理是如何做到的

164、rem和css3媒体查询的使用方式,如果有的设备分辨率高但是屏幕小如何处理

165、vue的父子组件传值,兄弟组件呢

166、js的继承(原型链继承和寄生组合继承代码说一下)

167、js的原型链和原型

168、css和js优化的方式

169、es6的promise的优点和缺点,用es5如何实现promise的all方法

170、es6的proxy说一下

171、逻辑题,共26个硬币,其中有一个是假硬币,假硬币较真硬币略轻。问用一个天平最少称几次可以找出假硬币。

172、给定一个长为n数组,里面存储着n个无序的正整数,求出数组中两个相差绝对值最小数的索引,,,说思路

173、代码实现轮播图

vue:watch与computed、路由切换动画、插槽、template作用、nextTick()原理

算法:实现货币转换单向input(带权有向图最短路径)、类似背包问题(动态规划)

ui组件测试、持续集成、单元测试

js的数组和对象的遍历性能比较

高阶组件介绍及原理

代码多种方法实现扁平化数组

node进程管理、cli原理

174、- 安全方面 csrf,xss localStorage与cookie谁更安全

- Even loop

- 宏任务,微任务

- 布局

- vue双向绑定,设计模式

- 闭包

- vue-router的实现,hashchange不支持的情况下如何修改

- 工作中遇到的问题

- 因为过了几天,记得不太清楚了

- http https http2.0

- 缓存

面试官基本是掰着手指头在选那些点(安全,http,css,布局,优化,项目点,还有工作遇到不会的点怎么解决等)

175、Symbol的作用,怎样遍历Symbol

176、border-radius的用法

177、css3动画实现方式

178、多个transition叠加会发生什么,animate的用法

179、local storage存储结构化

180、css3新增的特性

181、两道代码题2.add(4).reduce(2) //4

“123”.sub(2) //‘123123’

(写完后面试官提醒了在原型链上加方法之前要判断,第二个用join()实现性能更好)

182、移动端自适应的方式

183、 那有没有遇到过中东地区字体居右的问题啊?怎么解决的?(我感觉面试官肯定也做过类似的项目 头一次就项目聊到一块去了 贼开心) 那还有没有遇到过中东地区字体的一些坑?(我说的是时间显示的上面 有问题)

184、说一说let const底层怎么实现的?(不会。。。)

185、webpack热更新有没有了解过他底层是怎么实现的?(不会)

186、flex在部分ios9 ios10 上面有兼容问题

187、display,float,position这三者的优先级

188、diff算法的原理,时间复杂度

189、如何理解http是无状态的,为什么要这样设计,他的优缺点,http是二进制还是文本紧致

190、css选择器的优先级

191、解释闭包(顺便引申到了静态作用域,动态作用域)

192、box-sizing属性

193、动画的两个属性区别和适用场景

194、事件机制 冒泡有什么用 除了事件委托呢?

195、http1.0和2.0的区别

196、301和302状态码的区别是什么 分别用于什么情况下

为什么有了301还要有302 ?我说可能需要临时跳转一下,不是永久的;他说还可以用来做站点统计,如 果301的话,浏览器下次就直接去那个新的地址了。304是干啥的 强缓存和协商缓存 细说

197、提问环节:

部门是做什么的?

招聘流程是啥样的? 现场面还有两面,然后面试结束10分钟后直接跟我敲定了现场面时间

198、手写垂直居中的多种实现方法

199、原生实现Ajax

200、说一下httpXMLRequest的5个state是啥? 其实没答完,脑子一片空白。小姐姐人很好,帮我补充完整了,化解了尴尬。

201、说了到MVVM和虚拟DOM

202、手写两个数组合并后排序 要求尽可能时间复杂度低

203、问了一些html 非常基础的东西,比如说 html的结构, doctype是啥, HTML5的写法,为啥是那样写的

204、CSS引用方式和加载顺序

205、EventLoop 宏任务 微任务

206、块级作用域是什么有哪些?

207、斐波拉契数列

208、有没有看英文文档什么的?我说我都是遇到了问题才去看,他让我举个例子,然后我说了V8团队在 EventLoop上对async做了一些改进,原来是什么样的,现在是什么样的。给他说了个实例,就是那种 async里面的await后面跟了一个async里面console.log(1)的。他问我为什么会去看这个,我说我看事件 流的时候,两个电脑的浏览器版本不一样,跑出来的结果不同,然后我去百度搜了没搜到,但是在 stack overflow看到了一个类似的问题,顺着人家的答案找到了V8团队的官方说明。然后跟面试官具体 介绍了一下这个改进。不过我自己也没太理解,所以感觉讲的也不太好。

209、onready事件和onload事件

210、scrpit标签位置对加载的影响

211、CSS的display属性有哪些

212、编程题就是判断回文字符串

213、原型链,原型链的顶层,原型链顶层的顶层

214、设置display:none后DOM tree和render tree都会出现该节点嘛?

215、背景色会覆盖border吗

216、实现背景线性渐变的圆

217、触发bfc条件,bfc好处

218、判断一棵二叉树是否是镜像二叉树、

219、Generator/await用过吗

220、在白板上写出水平垂直居中的方法,一般三种就差不多了

221、字符串的方法,反转一个字符串以及优化

222、vue与jQuery的对比

223、mvvm和mvp模式的简单描述,很简单的描述了下,3分钟左右

224、vue的响应式原理:数据劫持 观察者模式,以及vue的组件化理解

225、缓存中有last-modified规则了,为什么还要有etag。面试官告诉我是这样一种情况:当一个文件被加了一个空格,l-m

就被修改了,然后再把那个空格删掉,此时文件还是原来那个文件,但l-m就不一样了,所以这就是etag的作用。

226、jQuery里使用$.attr('class')方法,那么原生对应的是什么obj.classList。面试官告诉我的

227、原生ajax的使用步骤,面试官当时的意思应该是讲讲过程就好

228、setter和getter

229、vue组件什么情况下可以独立出来?为什么?(实际上是想带入代码复用和高内聚、低耦合的概念)

230、浏览器从服务端获取到数据后,进行渲染的过程是怎样的?js的渲染是处于哪一步?

231、token令牌对web安全有怎样的作用?

因为没有自己具体敲代码使用过token,只是在公司项目中遇到过,了解的比较浅,所以只回答了可以防范crsf(跨站请求伪造)攻击。

232、对原型链的理解是什么?并且分析下面例题:

1

2

3

4

5

6

7

8

function Person(){

     

}

Person.prototype.name = 'xmi';

Person.age = 21;

var a = new Person();

console.log(a.age);  //请推测打印结果

答:由于age属于构造函数的私有属性,是不能通过new一个新对象去继承的,所以这里应该打印undefined。

腾讯面试题

1、

- css3动画优化,盒模型。bfc

- webpack优化

- canvas和svg的区别

- 设计模式

- http请求头,http状态码,缓存

- 原型链,继承

- 跨域问题(jsonp的实现,多个jsonp如何实现,cors跨域,请求头是什么)

- http和https的区别,https建立的过程

- 项目问题,剪切板

- 性能优化问题

- 笛卡尔坐标系问题,两个矩形如何确定他们有没有相交,讲一下基本实现

- promise实现

- es6的新属性

- 安全性问题,xss,csrf两个如何处理

2、合并两个数组

3、面向对象理解

4、斐波那契数列?怎么优化?

5、从数组中找出三数之和为n

6、对微服务有什么了解?

7、函数式编程理解

8、内存泄漏

9、对设计有研究吗

10、红色适合搭配什么颜色,忌讳搭配什么颜色

11、实现一个css框架你有什么思路吗

12、四面(总监面)

  1. 5g时代的来临对前端有什么机遇与挑战?
  2. Html4,html5是建立在http上的,http的下一代要解决什么问题?
  3. 对现在主流前端框架的看法?
  4. 看你有github,你一般在github上做什么呢?
  5. github看过什么关于前端项目的源码?
  6. 向什么源码提过pr?
  7. restful接口架构的优缺点?
  8. restful接口架构会导致什么安全问题,具体怎么解决?
  9. 团队合作有遇到过分歧吗?最后是怎么解决的?有什么事例最后是采取你建议的解决方案?
  10. 你印象中觉得腾讯工作形式是什么方式呢?

13、

三面(现场面)

  1. 前端未来规划?
  2. 3年之后的规划?
  3. 有明确的想从事的路线吗?to B?to C?全栈?
  4. node主要用来解决什么问题?
  5. node做BFF的优点是什么?
  6. 对项目监控这块有什么了解吗?
  7. 对微服务有了解吗
  8. 聊一聊docker?
  9. 当时什么从事前端?
  10. 整个学习历程是什么?
  11. 介绍部门团队的情况

问面试官的问题:

  • 现在部门采取的前后端技术栈是什么?当时项目为什么需要重构呢?是原来的架构遇到了什么问题吗?
  • 如果有幸加入贵公司,我会负责什么内容?您对我的期望是什么?

14、看过算法导论吗

15、对图有了解吗

16、http建立连接过程,为什么不是四次或两次握手

17、天擎的权限管理是怎么做的?

18、

  1. CSS 中表示颜色有几种?

3种,rgb,rgba,hex

  1. hex 方式的颜色形式占几个字节?

3个

  1. rgba 这个 a 代表啥意思?

透明度

  1. js 如何判断一个变量数据类型?

很多种,基本数据类型用 typeof,判断对象有很多种

  1. 那使用 typeof 判断基本类型有哪些值?

number, string, undefined, symbol, bigint, object, function

  1. 那对象类型呢?

instanceof, Object.prototype.toString.call, 比较对象的 constructor 和你想要判断的类型构造器

  1. 数组呢?

Array.isArray

  1. 事件怎样添加监听? 签名是怎样的?

addEventListener(事件名,listener)

  1. 还有第三个参数,第三个参数干嘛的?

没咋用过,盲猜是绑定 listener 的 this 的,不是

  1. 说一下事件冒泡过程?

捕获 -> 目标阶段 -> 冒泡阶段

  1. 怎样取消冒泡?

stopPropagation, return false

  1. 那取消捕获呢?

不造, 我说应该和stopPropagation 一样有个 API 来取消捕获。

  1. 下面进入算法环境,3 个问题,第一个问题是怎样判断一颗 DOM 树有多少个节点

我没刷过算法题,但是这么简单的问题我还是知道的。递归深度优先遍历。

19、一筒羽毛球,每次可以拿一个或者2个,问总共 n 个羽毛球多少种拿发?

20、串和滚雪球

21、模块化规范(AMD、CMD、CommonJS)

22、web安全

(XSS、CSRF)

23、 假设一个用户打开你写的网页,发现白屏了,你会如何去定位原因

24、

如何将数组转换为字符串,如何将字符串转换为整数,parseInt的第二个参数代表什么

25、

说出event对象的3-5个属性或方法

26、

 

 

 

 

 

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值