2020前端面试经历

2020-04-07  本文已影响0人  yfsola

html

1.如何使一个元素垂直水平居中(ps:知道几种就说几种)

2.浏览器的渲染机制

3.一个页面中展示很多图片,一次性请求,并发数过多如何进行优化?(客户端,服务端)

4.根据HTML,CSS,JS,图片有哪一些性能优化的方案?

5.http1与http2有什么区别,在性能提升方面,http2做了哪些变更?

css

1.如何实现一个动画(css3中animation,包括如何定义如何使用有哪些属性)

2.em与rem有什么区别

3.弹性布局有哪些属性

js

1.如何理解js的作用域

2.var与let,const的区别

3.ES6中的set和map有什么区别

4.js的基本类型有哪些?typeof null = ?为什么

5.如何解决js的异步问题

callback,promise.generator,async...await

其中相关问题:a.generator的自执行函数?

b.promise与async...await之间的比较

6.js遍历对象属性有哪几种方法

7.for...in与for...of的区别

8.数组去重有哪几种方法

9.什么使正向代理与反向代理

10.如何理解weakSet与weakMap,在什么场景下使用

11.如何防止内存泄露,有哪些手段?

vue相关

1.如何理解虚拟DOM,描述一下执行渲染过程

2.vue中key的作用

3.v-model的实现原理

4.如何理解diff算法

5.$nextTick的使用场景及实现原理

6.vue使如何实现数据双向绑定的

算法题、编程题

1.  将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

输入:1->2->4, 1->3->4

输出:1->1->2->3->4->4

单链表节点的定义:

function ListNode(val) {

      this.val = val

      this.next = null

}

function mergeTwoList(l1,l2) {

}

2. 实现一个通用的防抖函数

function debounce(callback, time) {

}

3. 解析一个合法URL中的query字符串,返回query对象

输入: "a=1&b=2"

输出: { a: "1", b: "2" }

function parseQuery(queryString) {

}

4.看程序输出结果

5.看程序输出结果

上一篇下一篇

猜你喜欢

热点阅读