Writing in the front

This is the end of a 15-part JavaScript in-depth series designed to help you, and in fact help you, sort out the basics of JavaScript. This article focuses on some difficult concepts in JS language such as prototype, scope, execution context, variable object, this, closure, pass by value, call, apply, bind, new, inheritance, etc.

JavaScript in-depth series from April 6th published the first article, to May 12th published the last article, thank you friends for your collection, like, encourage, correction.

And this article, as the conclusion of the in-depth series, in addition to summarizing the articles, as a table of contents, I also want to talk to you about why I write this series?

Why did I write an in-depth series?

Tell me one thing that has a great influence on my attitude towards learning technology.

At one point, the team invited one of the most famous gods in Nodejs to share, but I won’t say who. When I found out it was him, it was a fan’s mood. But the lecture was really mediocre. Maybe it was the first time that I was not well prepared, so THAT I thought I could speak better than him. But for two times, I felt that he was a real god. One was when a colleague asked if there were any popular front-end frameworks this year. What are the applicable scenarios for these frameworks? How to choose? I thought god would say React, Vue, etc., and then make a platitude comparison, but he said, “I dont care! Because it doesn’t matter, what really matters is the bottom layer, and when you understand the bottom layer, you can easily understand how the framework works, and when you understand the principle, what’s the meaning of the framework?”

Although this passage because too long in the past, already can’t remember the exact expression, but gave me a very deep impression, their learning to come all the way, new things constantly, but the feeling is more to learn a lot of API, if only to solve work problems, perhaps already have enough, but the heart often will pop up a kind of insecurity, Maybe it’s the fear of unknown parts of JavaScript, maybe it’s the embarrassment of not knowing how to solve the problem, maybe it’s the failure to learn the difficult language repeatedly… The longer the code is written, the more vivid this feeling becomes.

Of course, we also do not too much interpretation of the bottom, all kinds of computer language to the bottom are compiler principles and so on, if there is interest in this aspect, yes, but if in essence or to solve the problems of the upper level, but do not have to go into this level. Use JavaScript to understand the use and principle of the language itself, use jQuery to see the source code implementation, use React stack, write React, Redux simple simulation implementation, and so on, are a kind of pursuit of the bottom layer.

In this way, the word bottom is more like a direction, a learning attitude.

In order to have a deeper understanding of JavaScript, I studied some key words to learn recorded before as a topic, and then I decided to write this series. Although this series is still not “in-depth” in many aspects, compared with me before learning these contents, I already have more sense of stability and can solve some problems more easily. I also hope you can learn something from this series.

But even at 15, it’s just the beginning of a long journey. As I wrote in the description of my Github blog repository, I plan to write four series: JavaScript In-depth series, JavaScript Thematic series, ES6 series, React series, In fact, from “In-depth series” to “Special series” to “React Series”, it is a record of my decision to go back to the top step by step from the language level. Now, I have just taken the first step.

revision

After Posting the last article, I spent a week revising all the articles according to everyone’s comments and comments, and referring to Ruan Yifeng’s “Writing Specifications for Chinese Technical Documents”.

Speaking of which, the most common change is to add a space on both sides of English words…

In addition, you have questions or corrections or encouragement or thanks, feel free to leave a message to reply ha ~(~ ▽ ~)~*.

Full directory

Except for the first two posts on Github, the other posts link to the corresponding Nuggets column, and each post has a link to the next one to make it easier to read one by one.

  1. JavaScirpt dives from prototype to prototype chain
  2. JavaScript deep lexical scope and dynamic scope
  3. JavaScript deep execution context stack
  4. JavaScript deep variable objects
  5. JavaScript deep scope chain
  6. JavaScript digs into this from the ECMAScript specification
  7. JavaScript deep into the execution context
  8. JavaScript deep closure
  9. JavaScript depth parameters are passed by value
  10. JavaScript deep simulation of call and apply
  11. JavaScript in-depth simulation of bind implementation
  12. JavaScript deep new simulation implementation
  13. JavaScript delves into things like array objects and arguments
  14. JavaScript delves into the many ways to create objects, as well as the pros and cons
  15. The various ways in which JavaScript extends inheritance, as well as the pros and cons

The authors recommend

I sometimes feel inspired and enlightened when I’m researching topics, and I want readers of this series to feel as excited as the author did when he was learning them, so I highly recommend the following three:

  1. JavaScript digs into this from the ECMAScript specification
  2. JavaScript deep simulation of call and apply
  3. JavaScript deep new simulation implementation

Really over?

JavaScript basic knowledge is not such a bit! In the process of continuous learning, there will be some new topics suitable for division into the in-depth series, if so, will be released occasionally, of course, if there are too many, there is no guarantee of an in-depth series of the second season, haha.

propaganda

By the way, promote the blog’s Github repository: github.com/mqyqingfeng… Welcome star, give the author a pat on the back.

Next up

Over the course of a week, we will release a new series called the JavaScript Special Series that focuses on the implementation of some of the everyday development functionality points, such as buffeting, throtting, de-duplication, copying, Maximum value, Flat, Curry, Recursion, scrambling, sorting, and so on. Underscore and jQuery I expect to write about twenty this time.

Thank you for reading and supporting me! My name is Yuba! Bye for the JavaScript series! []~(~ ▽ ~)~**