Self-checking List of 2019 Front-end Engineers and Thinking


2019 Front End Engineer Self Test List

For JavaScript, mastering its syntax and characteristics is the most basic, but these are only application capabilities, and the final consideration is still the theoretical knowledge of the computer system. Therefore, basic knowledge such as data structure, algorithms, software engineering, design patterns, etc. are equally important to front-end engineers. The degree of understanding of these knowledge can determine how far you can go on the road of front-end engineers. It is time to carry out a wave of self-inspection, check for leaks and make up for deficiencies. Only through all-round development can you be stronger. The following forms of self-examination will be carried out according to the knowledge points in the picture.

A wave of summaries of knowledge points after interviews with more than 50 people

It may not be complete. Any additional points can be discussed in the comment area.


1. Do you only know js file placement order, request reduction, Sprite chart, etc. about performance optimization, but you don’t even know what is the measurement index window.performance.timing?

2. Please describe how the next web page is rendered, how the dom tree and css tree are merged, what is the operating mechanism of the browser, and whether or not rendering is blocked?

3. Please briefly describe the working principle of js engine, how js handles eventloop, what are macro task sources tasks and micro task sources jobs respectively? How does js construct the Abstract Grammar Book (AST)?

4. Do you consider comprehensively writing the entire function, or the fault tolerance and expansibility of the entire function? How to build a component is the most reasonable and scientific. Is there a unified way to deal with errors?

5. The basic strategy of browser caching, when to cache and when not to cache, and whether the relevant settings for the fields that control caching are clear?

6. Can you use object-oriented thinking to abstract your functions? Can you build a class(ES6)? How do you understand the front-end architecture?

7. You can use VUE and React. Do you understand the source codes of these two architectures? Do you understand their basic design pattern? Let you build a similar framework. How do you start?

8. Do you know ES6 only as const, let, promise? Have you considered the real trend proposed by ES6?

9. you can use less, so can you write a loader?

10. You can also use 10.webpack. Do you know the principle? Do you know the process of analyzing packing dependency? Do you know how tree-shakeing kills useless duplicate code?

11. Do you really know how to use css, and do you know how many attributes position has, please refer to …

12. Do you know the data structure of js? What are the basic data types? What are the complex data types? How does it behave in memory?

13. Can you use js to implement a one-way, two-way and circular linked list? Can you find, insert and delete?

14. Do you know the basic common algorithms? Quick sort, write one? How do you write if you restrict the use of space?

15. Do you know the common algorithms such as greedy algorithm, dynamic programming, divide-and-conquer algorithm and backtracking algorithm?

16. How do you understand the front-end architecture? Do you understand continuous integration?

17. Do you know the basic design pattern? Examples include singleton pattern, policy mode, proxy mode, iteration mode and publish/subscribe mode. . . ?

18. Write an event monitor function? Implementation of once, on, remove, emit functions

What is the implementation layer of node.js?

20. What is the event cycle mechanism of Node?

21.node’s child_process module has several APIs. What are their respective functions?

22. What is the difference between 22.http1.0 and 1.1 protocols?

23. How does 23.node implement the http module?

24. How to construct a master-slave mode?

25. Have you understood the relevant configuration of NGINX?

26. Do you really understand the front end?

Please write down your valuable opinions in the comments section for any aspects that have fallen behind. I will join in as soon as possible! ! !

Although some aspects have not been made up, they can serve as a reference ~