Author: Horace blog: this article was first published in blog ~ PS: new xiao Bai yimei, if there are mistakes, welcome to point out ~

Before the said in the article the author is now a junior, although may strength is not enough now, but still standing on the tail for cast out your resume, also thanks to the giant to interview, the interview also found my own shortcomings, I put the interview some of the problems of summary record down, hoping to help community also has objective classmates ~

Alinet test + one (telephone)

The written test

  1. Implement a difference function that outputs the different parts of two arrays [1, 2, 3, 5, 4][2, 4, 7] => [1, 3, 5, 7]
  2. Given an array of words that may have duplicate words, print the number of words that are not duplicated and the number of occurrences of each word (deduplicate + count)
  3. Implement a layout so that the image is centered in all cases. When the image size exceeds the screen size, scale it down… The other requirements were forgotten

One side

With only a few seconds left in the written test, the interviewer calls directly to begin the interview

  1. Did you run out of time to finish your last topic? How long will it take you to finish? Interviewer: It doesn’t matter that the written test is not very important, we focus on the solution to the problem Me: I think the last one should be solved with flex layout, but I’m not familiar with the three parameters of Flex Interviewer: It doesn’t matter

  2. Why don’t you introduce yourself in terms of technical points, key technical processes, some of your own ideas, some of your insights into front-end technology

  3. After listening to your self-introduction, I have a general understanding. Do you have any plans or ideas for your own development? Said a few stages of the front end of learning, and then said the goal of their own learning, and then said their work after the goal

  4. I see that your resume is quite rich in project experience. Could you tell me your opinion about your project? I talked about the forEach pit in the project, then I looked at the source code and discovered the async problem, and finally I recently discovered that the index key was actually affecting diff and Vue’s hijacking of array subscripts. The first project talked about performance optimization, The third project is still under development, mainly in order to exercise their back-end ability, so temporarily choose the template engine did not use the front end

  5. You said you had a performance optimization problem in your project. Can you describe the scenario and the choice you made in detail? It roughly describes the impact of page jump data cache and the invalidation of preloading scheme, and chooses the unloading and clearing scheme

  6. What do you think of this optimization now? (Confused, asks) Do you have any new ideas or bold ideas for optimizing this scene? I talked about preloading in anticipation of user behavior

  7. Vue and React are popular front-end frameworks. Do you see any differences between Vue and React in terms of virtual DOM and data? React uses one-way data binding and has to use separate state management

  8. Do you see any scenarios and downsides to Vue and React data? React: shouldComponentUpdate (shouldComponentUpdate, shouldComponentUpdate, shouldComponentUpdate) Then Fiber(I don’t know what that is, but that’s what it is)

  9. Now Vue I have a scene like this, how do you think Vue handled it? Me :(matter-of-factly) can you describe the scene in detail? Interviewer: If I have two components, A and B, that depend on one piece of data at the same time, and I modify both components at the same time, what do you think? Me :(testing) I think the data update should be synchronous, the data will be processed in memory and then handed to the page for rendering display, such as a delete, a change, should fetch the last result

  10. You said that your last project was to improve your back-end ability. What aspects do you think you need to strengthen now, and what plan do you have to implement it? Talked about the back-end node, network programming, program four: official documents, actual combat, open source works, technical community

  11. How well do you know the properties of script tags, and what properties affect page loading? Start with SRC (cross-domain by the way), then defer, async impact scripts, some differences (load order), and finally Type (not much to know).

  12. How do you feel about your knowledge of front-end engineering, such as Webpack? Interviewer: So tell me about your understanding of workflow me: Start being a devil, I don’t know what I said

  13. For ES6, can you talk about some of the grammar problems that the new ES6 features have solved? Async, arrow functions, template strings, extension of array methods, destruct assignment, default parameters, block-level scope, Map and Set

  14. There is a lot of async/await and Promise in front-end work now. Async /await makes async synchronous Promise says to solve callback hell with chained calls (callback function delayed binding, return value penetration, error bubbling) => goes back to async/await implicit return Promise

  15. Do you have cross-domain problems in your studies or projects? Yes, Vue can cross domains when combined with backend request data. Interviewer: What about the cross-domain and cross-domain solution? JSONP(cross-domain read, write, resource embedding, then combined with previous Script), CORS, WebSocket(two-way communication solution), Node middleware proxy, Nginx reverse proxy, Location.hash

  16. Does WebAssembly know about it? Say no

  17. What tools do you use for code management? I: Git interviewer: What are some common git commands? : I submit SanBanFu: git add | git commit | git push view logs: git log = > show id and rollback operation: git reset Head | git reset id to check the status: Git status: Git branch | git checkout | git merge git diff | git rm | | git mv git init | git pull (forgot to git config.

  18. HTTP1.1 and HTTP2.0 are optimized for static resources. For example, HTTP1.1 and HTTP2.0 are optimized for static resources. HTTP1.1 and HTTP2.0 are optimized for static resources.

  19. That’s about it for me. Do you have any questions?

  • What learning tips do I have for my performance (breadth, don’t dig yourself into a hole, open source goals to try)
  • Choice of front-end framework for enterprise development: Vue and React
  • Do you have a better solution for the performance optimization of loading

End added a wechat, I feel pretty cool

Ali Second Interview (telephone interview)

  • I introduced myself and asked about the full GPA score, ranking of my major, and my English proficiency (because I filled in “proficient”).

  • Asked about the project

    • I asked a series of questions based on Vue keys after I said that the wxParse component was rendering with keys
    • Why does wxParse repeat rendering
    • Vue-qr is used in the project, vuE-QR conversion two-dimensional code how to achieve
    • WxParse keeps rendering and blocking other logic. Is the other logic executing, not executing, or executing slowly?
    • Js is a single thread, the two animation running at the same time how to achieve
  • Vue array element monitoring, how to implement data specific elements monitoring

    • Why can I listen for changes like POP and push
  • Difference between import and require

    • The interviewer said I was too syntactic and asked how import works in the browser
  • The difference between for in and for of

  • Relative positioning

  • How to achieve that the width is always twice the height

  • Browser cache

    • Service worker, Memory cache, Disk cache and push cache are updated by the service worker. Memory cache and disk cache are cached by the service worker.
  • How do I do strong caching

  • How do two Windows share the cache

  • How do two tabs communicate with each other

  • Enter the URL to the page display

    • Are the DOM tree building and style calculations sequential, or do they happen simultaneously?
    • Improved browser completion protocol, how does the browser know the protocol?

Then you finish by asking the interviewer a few questions

To tell the truth, Ali felt cold after the interview. He still had a lack of foundation and imperfect knowledge system. As expected, no interviewer contacted me for a period of time after the second interview, and then he switched to Didi

Didi side (video side)

  • I introduced myself and the interviewer was very nice. It was like chatting

  • Introduce the project

    • I went straight to the last project and asked my choice of template engines, and then the interviewer asked me if I had used any other template engines (said EJS), and the interviewer laughed and said he liked PUG, which was what he was going to ask
    • Have you ever thought about using SSR
    • What ESLint does, how it feels to use it in a project
    • How to find some low-level syntax errors in the code
  • Have you ever used Vuex? Say Vuex

    • The effect of Mutation
  • Write a programming problem

    let x = {
      a: {
        b: {
          c: 1}}}let y = 'a.b.c'
    
    function fun(obj, str) {}
    
    console.log(`fun(x,y):`, fun(x, y)) / / 1
    Copy the code

    Implement a fun method to complete the output and then consider boundaries and optimizations under the guidance of the interviewer.

  • I ended with two questions

Didi Second Side (Video side)

The interviewer said there was a problem with the equipment and the camera wasn’t on

  • The interviewer said to look for my resume and tell me about myself

  • Tell me about the project. I have a commercial project that has been launched

    • I asked how many people did the front end of the project
    • Describe the features that business projects implement (a bunch of features)
    • The interviewer said that there were a lot of functions realized, and asked me to describe a problem in my resume in detail (detailed, and the solution process), and then asked me if I had any problems (mentioned the problem of return results of payment interface, conversion of VUE-QR to TWO-DIMENSIONAL code and slow rendering).
    • Describe the process of using Git in a commercial project
    • I see that one of your databases in the next two projects is mysql and the other is mongodb. Can you explain why? (The interviewer and I both laughed. I mentioned objective reasons and data constraints and ease of development.)
  • What are the positioning attributes in the CSS? Static, absolute, relative, sticky, fixed

  • What are the data types in JS?

  • What is the Symbol type used for?

  • What’s the difference between null and undefined?

  • How do I know if a variable is an array? InstanceOf, isPrototypeof, Array. IsArray (), the Object. The prototype. ToString. Call ()

  • Promise has an all method, can you talk a little bit about what that does?

    • So if you want to achieve this effect without Promise. All, how can you achieve it? The interviewer reminded me that there are many asynchronous operations. How can I judge that all the asynchronous operations have been completed and get the return result
    • Have you ever seen how to create a Promise object when a new Promise is created
  • Anti-shake and throttling? What’s the difference between them? An example of a button to view objects made both of us laugh

  • What is the 304 status code in HTTP?

  • Do you know React?

    • Then I would like to hear your understanding and opinion on Vue and React frameworks, including the advantages and disadvantages of the two frameworks in the process of use. You can tell some of your opinions and the differences between the two frameworks, and then you can say that Vue is like the first love, all the beautiful things are provided to you, while React is more wild, you have to do everything by yourself. Made the interviewer laugh
  • A couple of last easy questions

    • You’ve been in front end since sophomore year, so there’s probably not much front end in school
    • Most of the front-end is self-taught or other time, how do you learn the front-end stuff?
    • When can I start my internship

Didi’s interview experience is very good, and the interviewers of Ali will guide you to answer a question just like the interviewers of Ali. Both Ali and Didi value the basic and practical ability to solve a problem

A few last words

The author met several companies at the end of spring recruitment. Generally speaking, the topic is relatively simple. For fresh graduates, the foundation is really, really important

In fact, the interview is also a good learning process. First, in the process of preparing for the interview, you can constantly improve the aspects involved in the interview, but in the process of the interview, you can obviously feel which aspect of your own is not good enough, so that in the future learning will be more purposeful. Interview is a two-way street. It’s important to break the ice. If you keep the interviewer looking at you with a straight face, you’ll be nervous too. So the interview skills are very important, the interview is also an important part of their learning process, because the interview process can always harvest a lot of unexpected

Interview should not be afraid of failure, it is difficult to succeed in one step, we should make progress in the process of failure, repeatedly fail to fight, find their own way, finally, I wish you get your favorite offer~