directory

The interview is divided into interview preparation, basic knowledge, advanced knowledge, project experience, HR and other stages

The following is a detailed explanation of what knowledge needs to be prepared for each stage, I hope every student can get the offer!!

This article has been uploaded to Github and personal website, please follow and star

  • github

  • blog

Interview preparation

Before the interview, we should first understand the requirements of the job and make specific preparations.

Preparation includes the following aspects:

  1. Job description (JD) analysis
  2. Understand the business/project
  3. resume
  4. To introduce myself

Job description (JD) analysis

Job listings on job boards come with a job description, which is often so streamlined that people often miss the deeper meaning

The following article is a good example of analysis, I hope you can study more

  • I’m in ali’s front end. How can I help you?

Understand the business/project

In two steps:

  1. To understand the business, such as the main business of the airline tickets, we should not understand a ticket purchase process
  2. To understand the project, we should learn about the company’s current project, whether it is to B or TO C, whether there is m station, overseas station, small program, etc., and whether it uses Vue or React

resume

A good resume, give us a lot of interview points. So how do you write a great (or at least good) resume? The following articles may help you. Don’t need to read every one, just refer to one or two!

  • What kind of resume is the interviewer looking for?
  • 2019 Interview Series – Resume
  • OpenDoc – Front end resume rating criteria
  • How do other programmers read your resume

The resume template

  • Best-resume -ever(👔 💌 Build fast 🚀 and easy multiple beautiful resumes and create your best CV ever! Made with Vue and LESS.)
  • Resumes generated using the GitHub informations(Resumes generated using the GitHub informations )
  • Give you a nice resume artifact
  • 5 concise resumes for job applications
  • 6 Simple, multi-style resumes
  • 10+ Excellent concise resume download (five
  • Automatic resume of practical project
  • And double 叒 Yi is a dynamic resume
  • My resume implement by Vue.js

To introduce myself

The first question in the interview is to let us introduce ourselves, to prepare this question, can let the interviewer have an accurate understanding of us, at the same time we can also introduce ourselves, guide the interviewer to ask us more adept questions.

One side

Focusing on the basics, we’ll begin by preparing some common interview questions

CSS

Use CSS to achieve a continuous animation effect

The answer
animation:mymove 5s infinite;
@keyframes mymove {
from {top:0px; } to {top:200px;}
}

Copy the code

The main investigation

value describe
animation-name Specifies the name of the keyFrame to be bound to the selector.
animation-duration Specifies the time, in seconds or milliseconds, to complete the animation.
animation-timing-function Specifies the velocity curve of the animation.
animation-delay Specifies the delay before the animation begins.
animation-iteration-count Specifies how many times the animation should be played.
animation-direction Specifies whether animations should be played back in turn.

Extension:

  • Use JS to achieve a continuous animation effect

      
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="Width = device - width, initial - scale = 1.0">
  <title>Js animation</title>
  <style>
    #app{
      position: absolute;
      width: 300px;
      height: 300px;
      background-color: #f00;
    }
    
  </style>
</head>
<body>
  <div id="app"></div>
  <script>
    const end = 300, duration = 5
    const $app = document.getElementById('app')
    let starttime
    function move() {
      let percent = (Date.now() - starttime) / 1000 % duration / duration
      $app.style.left = percent * end + 'px'
    }
    / / method
    // function start() {
    // starttime = Date.now()
    // let timer = setInterval(() => {
    // move()
    / /}, 1000/60);
    // }
    // start()

    / / method 2
    // function start() {
    // let timer = setTimeout(() => {
    // move()
    // start()
    / /}, 1000/60);
    // }
    // starttime = Date.now()
    // start()

    / / method 3
    function start() {
      requestAnimationFrame((a)= > {
        move()
        start()
      })
    }
    starttime = Date.now()
    start()
    
  </script>
</body>
</html>
Copy the code

Range of new features

How to Clear a Float

The answer
  1. clear
.floatfix{
    *zoom:1;
}
.floatfix:after{
    content:"";
    display:table;
    clear:both;
}
Copy the code
  1. BFC
  • Float the CSS (Clear and BFC)

Notes:

  1. Clear is valid for block-level elements only

  2. Clear does not clear the float effect, but prevents the edge of the current element box from being adjacent to the previous float element.

  • The most comprehensive and thorough analysis of BFC principle in history
  • Learning BFC (Block Formatting Context)

CSS box model

The answer

Standard model and IE model

content padding border margin

The difference between the four kinds of positioning

The answer
Static is the default and you don't create a BFC relative position that's offset relative to its original position, Still in the standard document flow Absolute location relative to the nearest located ancestor element, there are located (for elements whose position is not static) ancestor elements, and the nearest ancestor element is the reference standard. If no ancestor element is located, the body element is used as an offset reference, completely out of line with the standard document flow. Fixed-positioned elements are positioned relative to the window, which means that even if the page scrolls, it stays in the same position. A fixed positioning element does not retain the space it should have on the page.Copy the code

other

  • Percentages in CSS
  • [CSS vertical horizontal center] juejin.cn/post/684490… demo.cssworld.cn/5/3-10.php
  • [Realize contour layout]demo.cssworld.cn/4/3-2.php demo.cssworld.cn/4/4-4.php
  • Do you really understand line-height and vertical-align versus baseline?
  • Align instance pages with small ICONS that use the inline-block baseline principle
  • Focus anchor positioning and Overflow TAB toggle effect instance page
  • Flex layout
  • The grid layout

html

http

The characteristics of HTTP

The answer
Stateless no connectionCopy the code

Component of an HTTP packet

The answer
Request line Request header blank line Request body transition line Response header Blank line response bodyCopy the code

The method of HTTP

The answer
GET POST PUT DELETE HEAD
Copy the code

Extension:

  • Difference between GET and POST

HTTP status code

The answer

Just remember the following

  • More and more

HTTP persistence and pipelining

Know the concept, don’t bother

www.cnblogs.com/hyzm/p/9530…

DOM Event Types

The DOM event level is displayed

The answer
DOM level 0: dom.onclick =function() {} DOM level 2: document. AddEventListener ('click', () = > {}) DOM level 3: the document. The addEventListener ('keyup', () = > {})Copy the code

DOM event Model

The answer
Capture and bubbleCopy the code

The DOM event flow

The answer
Capture > Target phase > bubbleCopy the code

Describes the process of DOM event capture

The answer
window>document>html>body>...
Copy the code

Extension:

  • How do I get HTML?

    The answer
    document.documentElement
    Copy the code

Common applications of the Event object

The answer
event.preventDefault()
event.stopPropagation()
event.stopImmediatePropagation()
event.target
event.currentTarget
Copy the code

Extension:

  • The difference between stopImmediatePropagation and stopPropagation in JS
  • The difference between event.target and event.currentTarget

Custom event

You can use Event or CustomEvent

The difference between Event and CustomEvent is that CustomEvent can pass parameters

// First, you need to define the event in advance and register the associated EventListener
var myEvent = new CustomEvent('event_name', { 
    detail: { title: 'This is title! '}});window.addEventListener('event_name'.function(event){
    console.log('Get the title:', event.detail.title);
});
// The event is then fired on the corresponding element
if(window.dispatchEvent) {  
    window.dispatchEvent(myEvent);
} else {
    window.fireEvent(myEvent);
}
// According to the listener callback function definition, it should output "Get the title: This is title!" in the console.
Copy the code

What does FastClick do

The answer
Solve 300ms delay of mobile terminal clickCopy the code

Extension:

  • How do I delay the mobile click event

Fastclick principle

The answer
Use event.preventDefault() to prevent the default behavior, then send the custom click eventCopy the code

js

Var let const

letThere is no variable promotion, no duplication of definitions, block-level scope, temporary dead const declarations are assigned, and the value of the variable cannot be changedCopy the code
  • An interview question caused a deadly accident

Variable promotion & scope

  • Diagram scopes and closures
  • For a deeper understanding of JavaScript, start with scopes and scope chains
  • In-depth understanding of JavaScript scopes and scope chains

Method to get the length of a string

function codePointLength(text) {
  var result = text.match(/[\s\S]/gu);
  return result ? result.length : 0;
}

var s = 'ð ®· ð ®·';

s.length / / 4
codePointLength(s) / / 2
Copy the code
function length(str) {
  return [...str].length;
}

length('x\uD83D\uDE80y') / / 3
Copy the code

Prototype chain

  • Understand constructor, prototype, __proto__, and prototype chains in your own way (figure)

This

  • Hey, do you really understand this?
  • The use of this in Js
  • Look at the This binding, scope, scope chain, and closure through the runtime mechanism
  • Six barriers to JavaScript this

closure

  • Illustrate why JS closures are formed

inheritance

The answer

       
<html>
  <head>
    <meta charset="utf-8">
    <title>object-oriented</title>
  </head>
  <body>
    <script type="text/javascript">
      /** * declarations */
      var Animal = function () {
          this.name = 'Animal';
      };

      /** * es6 class declaration */
      class Animal2 {
          constructor () {
              this.name = 'Animal2'; }}/** * instantiate */
      console.log(new Animal(), new Animal2());

      /** * inherit */ with constructor
      function Parent1 () {
          this.name = 'parent1';
      }
      Parent1.prototype.say = function () {};function Child1 () {
          Parent1.call(this);
          this.type = 'child1';
      }
      console.log(new Child1(), new Child1().say());

      /** * Implement inheritance with prototype chain */
      function Parent2 () {
          this.name = 'parent2';
          this.play = [1.2.3];
      }
      function Child2 () {
          this.type = 'child2';
      }
      Child2.prototype = new Parent2();

      var s1 = new Child2();
      var s2 = new Child2();
      console.log(s1.play, s2.play);
      s1.play.push(4);

      /** * Combinations */
      function Parent3 () {
          this.name = 'parent3';
          this.play = [1.2.3];
      }
      function Child3 () {
          Parent3.call(this);
          this.type = 'child3';
      }
      Child3.prototype = new Parent3();
      var s3 = new Child3();
      var s4 = new Child3();
      s3.play.push(4);
      console.log(s3.play, s4.play);

      /** * Combinatorial inheritance optimization 1 * @type {String} */
      function Parent4 () {
          this.name = 'parent4';
          this.play = [1.2.3];
      }
      function Child4 () {
          Parent4.call(this);
          this.type = 'child4';
      }
      Child4.prototype = Parent4.prototype;
      var s5 = new Child4();
      var s6 = new Child4();
      console.log(s5, s6);

      console.log(s5 instanceof Child4, s5 instanceof Parent4);
      console.log(s5.constructor);

      /** * Combinatorial inheritance optimization 2 */
      function Parent5 () {
          this.name = 'parent5';
          this.play = [1.2.3];
      }
      function Child5 () {
          Parent5.call(this);
          this.type = 'child5';
      }
      Child5.prototype = Object.create(Parent5.prototype);

    </script>
  </body>
</html>


Copy the code

The operation performed by new

1. Create a new object. 2. The new object will execute the [[Prototype]] connection. 3. This new object is bound to the function call this. 4. If the function returns no other object, then the function call in the new expression automatically returns the new object.Copy the code

Do you know object.create

  • Rounding out the Object. The create (null)

Second interview

Focus on the scope of knowledge, advanced knowledge, in-depth principles, etc

js

SetTimeout and setInterval and requestAnimationFrame

  • The scope of setInterval and setTimeout
  • Note — use setTimeout, setInterval
  • Do you really know setTimeout and setInterval?
  • About the setTimeout
  • Deep decryption setTimeout and setInterval — rename setInterval!
  • Look at JS threads from setTimeout/setInterval
  • You know requestAnimationFrame [from 0 to 0.1]

JSON. Parse (JSON. Stringify ()) shortcomings

In JSON. The stringify (phase)

1. If obj has a time object in it, then the result of json. stringify followed by json. parse will have the time as a string, not as an object 2. If obj contains a RegExp, an Error object, then the result of serialization will be an empty object. 5. Json.stringify () can only serialize the enumerable properties of an object. Parse (json.stringify (obj)) ¶ For example, if an object in obj is generated by a constructor, its constructor will be discarded after using json.parse (json.stringify (obj)) for a deep copyCopy the code

Object and array traversal

  • Object attributes are divided into three categories: self attributes, can they be enumerated, is it a Symbol attribute note: objects do not have for… of…

Take a chestnut

var a = {a: 1}
var b= {b:2}
b.__proto__ = a
Object.defineProperty(b, 'c', {
	value: 3
})
b[Symbol= ()]4

Object.keys(b) // ["b"] returns an array containing all the enumerable properties of the object itself (excluding the Symbol attribute).

for(var i in b) {
  console.log(i,":",b[i]);
} // b: 2 a: 1 iterates through the object's own and inherited enumerable properties.

Object.getOwnPropertyNames(obj) // ["b", "c"] returns an array containing all the attributes of the object itself (not including the Symbol attribute, but including the non-enumerable attribute).
Reflect.ownKeys(b) // ["b", "c", Symbol()] returns an array containing all the attributes of the object itself, whether the attribute name is Symbol or string, and whether it is enumerable or not.

Copy the code

What is strict mode

The strict mode has the following limitations.

The variable must be declared before using the function. The parameter of the function must not have the same name as the property, otherwise the error cannot be used with the statement cannot be assigned to the read-only property, otherwise the error cannot be used with the prefix 0 to indicate the octal number, otherwise the error cannot be deleted, otherwise the variable delete prop cannot be deleted, then the error will be reported, Delete global[prop]evalNo variables are introduced in its outer scopeevalArguments. callee cannot use arguments.caller disallows this to refer to global objects Added reserved words (such as protected, static, and interface) to the stack that cannot get function calls using fn.caller and fn.argumentsCopy the code

Functional programming

  • Functional programming in JavaScript
  • Introduction to functional programming
  • ramda
  • Ramda library reference tutorial

Regular expressions

  • JS Regular Expression tutorial (slightly longer)

es6

  • Introduction to ES6
  • 15,000 words to summarize all the features of ES6

What is a temporary dead zone

A variable is not available until it is declared with the let command within a code block. Grammatically, this is called a temporal dead zone (TDZ).

> import/ exports > require/exports > import/ exports

An important feature of the -CommonJS module is load-time execution, that is, when the script code is required, it is all executed. Once a module is "looping loaded", only the parts that have been executed are printed, not the parts that have not been executed. -Es6 modules are dynamic references. If you load variables from a module using import, the variables are not cached. Instead, they become a reference to the loaded module. - import/exportIt is compiled to require/exports. - The CommonJS specification states that within each module, the module variable represents the current module. This variable is an object whose module.exports property is the external interface. If you load a module, you load the module.exports property of that module. -exportThe command specifies the external interface and must establish a one-to-one correspondence with the variables inside the module.Copy the code
  • Front-end modularity: CommonJS,AMD,CMD,ES6
  • Differences between ES6 modules and CommonJS modules

typescript

  • Typescript Chinese official website
  • What’s the difference between interface and type in Typescript

vue

  • 30 Vue interview questions, including detailed explanations (ranging from beginner to master, self-test Vue mastery)
  • Exciting new features in Vue 3
  • Interviewer: How is it better to implement two-way Proxy binding than DefineProperty?

vue-cli

  • Revamp vue-CLI to make it more usable
  • This is probably the most complete vue-CLI parsing…
  • Vue- CLI principle analysis

react

  • website
  • Some comparison and Personal Thoughts about Vue and React (I)
  • From Mixin to HOC to Hook

Small program

taro

weex

The source code

  • Weex in the original JS Framework

webpack

  • In 2020, no more webpack typed code is not sweet (nearly ten thousand words actual combat)
  • Build a large project from scratch with WebPack step by step

The browser

Network request

  • Seven layer network structure

Browser same-origin policy and cross-domain

Five kinds of methods

jsonp
hash
cors
websocket
postmessage
Copy the code
  • Browser homology policy and its circumvention
  • Description of cross-domain resource sharing CORS
  • Ajax cross-domain, this is probably the most comprehensive solution

Network security

  • What is a CSRF
1. XSS (cross-site-scripting) attack Solution: String escape 2. Cross Site Request forgery (CSRF) solution: 1. Pass cookie in plain text 2. Request a random string (only used once)Copy the code

Browser rendering mechanism

  • From the input URL to the page loading process? How to perfect their front-end knowledge system by a problem!
  • From browser multi-process to JS single thread, JS running mechanism is the most comprehensive comb

Js runtime mechanism

  • This time, understand the JavaScript execution mechanism thoroughly
  • The Event Loop is an Event Loop
  • JavaScript Event Loop details
  • Visualizing the javascript runtime at runtime

Page performance

  • 10 times better performance with 100 lines of code

Processes and Threads

  • Learn more about processes and threads in Node.js
  • A simple explanation of processes and threads
  • This article will help you understand the differences and connections between processes and threads
  • Brief analysis of operating system process, thread difference

Page rendering

  • Browser page rendering mechanisms you don’t know
  • Do you really understand the browser page rendering mechanism?

The cache

  • Thorough understanding of browser caching mechanisms
  • Browser cache
  • Optimal solution of front-end static resource cache and the pitfalls of max-age
  • Interview selection of HTTP cache

The garbage collection

  • Illustrated JavaScript Garbage Collection – a modern JavaScript tutorial

architecture

  • This article takes you through the Chrome browser architecture

nodejs

  • NPX tutorial
  • Cookie, Session, Token, JWT
  • Illustrated, uncover the mystery of “single sign-on” for you

algorithm

  • How should the front end prepare the data structures and algorithms?
  • Js implementation sorting algorithm (bubble, select, insert, binary insert, fast, hill)
  • Common algorithmic problems in front interviews
  • Graphics algorithm (adjacency matrix)
  • 5 minutes to show you: a jumping company interview rate of one of the highest algorithm – virtual cross tree modeling problem
  • 【 from eggshell to the sky 】JS data structure analysis and algorithm implementation – set and mapping
  • Interview test – Recursive thinking and practice

The complexity of the

  • The time and space complexity of the algorithm, it’s that simple

Binary tree

  • JavaScript binary tree in-depth understanding
  • 3 minutes to understand complete binary trees, balanced binary trees, and binary search trees

Handwritten code

Manually implement new

functionNew(Constructor, ... args){letobj = {}; // Create a new Object object.setPrototypeof (obj, construction.prototype); // Connect the new object to the function prototypereturnConstructor.apply(obj, args) || obj; // Execute the function to change this to a new object}function Foo(a){
    this.a = a;
}

New(Foo, 1);  // Foo { a: 1 }

Copy the code
function _new() {
    lettarget = {}; // The first argument is the constructorlet[constructor, ...args] = [...arguments]; // Execute the [[prototype]] connection; Target. __proto__ = constructor. Prototype; // Execute the constructor to add properties or methods to the created empty objectlet result = constructor.apply(target, args);
    if (result && (typeof (result) == "object" || typeof (result) == "function")) {// Return an object if the structure the constructor executes returns that objectreturnresult; } // If the constructor does not return an object, return the new object createdreturn target;
}

Copy the code

Implementing deep copy

  • How to write a deep copy of an amazing interviewer?
  • Shallow copy and deep copy

Shake and throttling

  • Js history the most streamlined! Tremble throttling (yours is shorter than mine, I lose)
  • Prepare for interview 2019 – JS shock-proof and Throttling

Array to heavy

  • Array deduplication in JavaScript topics
  • How to answer an array of questions that impress an interviewer?

Implement a simple version of VUE2

  • [Hand-in-hand series] to achieve a simple version of VUE2

other

  • 【 interview question 】 JS various source code implementation
  • The 23 lines of code implement a fetch request function with a concurrency limit
  • Bytedance Interviewer: Please implement a large file upload and breakpoint resume

The code quality

  • Code clean JavaScript
  • How can I improve the code quality of my Web application

On three sides

Focus on the following competencies

Business capability Team collaboration capability business driving capability person capability architecture capability project experienceCopy the code

project

Interviewers will often ask you to name a few projects you’ve worked on and dig into one or two of them.

We need to prepare for these aspects:

  1. What is the performance of the project I am responsible for
  2. What technical solutions are used
  3. What are the technical difficulties
  4. What difficulties did you encounter
  5. What did you gain?

Architecture and transaction enablement

  1. Have you built your own projects?
  2. What was your technology stack of choice?
  3. Why?
  4. Talk about your difficulties
  5. As the technical leader, how do you keep the project going

Lead people and team work

  1. Have you had anyone with you?
  2. How do team members work together?
  3. Is there code review?
  4. How much do you know about git commands?
  5. How do you collaborate with backend, product, design, and project managers?

Problem solving skills

  1. Have you ever encountered any difficulties and how did you solve them?
  2. How do you usually study?
  3. What websites do you visit?

A passion for technology

  1. Do you know about Vue3? What optimizations did Vue3 make? How is it different from VUE2?
  2. Do you know about microservices? web component? http3? Etc.
  3. Are there open source projects?

Final plane (HR plane)

Focus on character, potential

At this point, the offer is basically in hand, but it should not be taken lightly, because HR often has veto power.

This side requires us to show the following characteristics:

  1. The optimistic positive
  2. Take the initiative to communicate
  3. Logic is smooth
  4. Motivated and responsible
  5. Assertive and decisive

You may have the following problems:

  1. Views on overtime
  2. What is career planning
  3. What do you have to ask
  4. What clubs were you in at college
  5. What do you like to do in your spare time
  6. What would you do if you had a conflict with a colleague

So far the interview is over, congratulations you have got the desired offer!

What follows is interview skills and experience to help you better deal with the interview!!

Interview skills

  • What are some practical interview techniques for “technical interview” q&A?
  • 5 minutes for the front end interview
  • How to prepare before the interview to improve the success rate (including the front interview question)
  • As a technical interviewer, why did you pass
  • Intensive reading of the “best front end questions” and interviewer skills
  • Write for the preliminary front end interview experience
  • Front-end Interview Guide
  • About the Interview Process
  • Programmers interview this way to introduce their project experience, the success rate can reach 98.99%

If you’re the interviewer

  • Talk about interview and interview questions
  • Interview dozens of people

The interview experience

Ali.

  • I’m in ali’s front end. How can I help you? (Surprise at the end)
  • Interview share: Summary of 2018 Alibaba front-end interview
  • Ali Health interview summary
  • The big reveal! What am I asking about the “scary” side of Ali
  • Interview share: Specialist half a year experience interview Ali front-end P6+ summary (with the interview question and answer)
  • 2018 Alibaba Front End Interview Summary (Topic + Answer)
  • One and a half years of experience, baidu, Youzan, Ali front-end interview summary
  • Interview sharing: two years of work experience successful interview Ali P6 summary
  • Want to get into Ali? Here’s a 4,000-word “Ariinet’s Guide to Twitter.”
  • I want to join Ali, what should I do
  • Ali six side, hanging in HRG, I really not reconciled
  • Summary of front Interview (AT, MD)

tencent

  • Tencent Front End Interview (1)
  • Tencent Front End Interview part 2
  • Tencent interview (3) — the final chapter

baidu

  • My web front-end interview experience – Baidu

millet

  • Remember a cool millet interview

bilibili

  • 【 Interview Summary 】 Remember a failed Bilibili interview summary (1)
  • 【 Interview Summary 】 Remember a failed Bilibili interview summary (2)
  • 【 Interview Summary 】 Remember a failed Bilibili interview summary (3)

headlines

  • Two years in front of the headline interview

other

  • About naked resignation, about front end interviews
  • One year experience in front of hangzhou several second-line factory interview questions comb
  • January front interview record
  • Front interview guide
  • June 2018 Front-end interview Experience (I)
  • 2019 Interview Practice — Round one
  • 2018 for the front end of the interview: through fine alignment (fine) | the nuggets technical essay
  • Post 2018 Spring Festival interview tips
  • What are the Web front-end job interview questions?
  • In 2019, after reading this one, I’m no longer afraid of the front end interview
  • [across nine big front school recruit offers, full text of 14560 words, reading should be 80 minutes] (mp.weixin.qq.com/s/tM2lvhJEh…).

Recruitment website

  • Ali clubs recruit
  • Ali school recruit
  • Tencent clubs recruit
  • Toutiao social recruitment
  • Zhihu (Beijing, Shanghai, Chengdu, Guangzhou)

treatment

  • Ali welfare
  • How much do Alibaba employees make a year?
  • Ali’s performance assessment: star reward, white rabbit killing, wild dog to public display
  • What’s it like to be a programmer at Bytedance?
  • Forty-eight hours after joining Bytedance, I discovered the secret of Tiktok
  • An article discloses the BAT Internet factory salary

Interview Questions Warehouse

  • From basic to advanced, test how much you know about JavaScript and refresh your knowledge in 2020!
  • Github.com/jwasham/cod… [原 文] A complete study manual to help you prepare for a Google Interview
  • Github.com/haizlin/fe-…
  • Github.com/30-seconds/…
  • Github.com/xiaomuzhu/f…
  • Github.com/yisainan/we…
  • Github.com/woai3c/Fron…
  • Github.com/qiu-deqing/…
  • Github.com/poetries/FE…
  • Github.com/azl39798585…
  • Yun-long zhang blog
  • Alibaba, Tencent, Baidu, Meituan, Tiaotiao and other technical interview questions and answers
  • How to pass an Ele. me Node.js interview
  • The Atlas of Interview