Come on, come on, come on, team up!
We’re going to spend some time learning JavaScript together. For me, it’s relearning JavaScript.
Why restudy?
First, I have been doing Node.js development for some time. Looking back, I have been busy with my work and business every day. Besides, the project is very simple, so I don’t have much knowledge but learn CURD. Later, there were various requirements and different technologies, so I became a full-time programmer, node.js backend, Android development, Web front end, small programs, etc., doing so many things definitely not very deep into the technology itself, it was all to solve the business. At the same time, there is not much time to study deeply.
Second, I was actually doing Android development before NODE. js. My colleague at the back end quit and couldn’t find anyone, so I switched to node.js back end development. At that time, I didn’t know much about Node.js and the project was in hand, so node.js knowledge, JavaScript, framework and so on were all learned and sold on the go, and even the boundary between JavaScript and Node.js was not clear at one time. This leads to a problem that the knowledge I have learned is scattered and not systematic, and there are certain knowledge blind areas.
Thirdly, I should be a wild programmer. I am very interested in all aspects of computer technology, but ALMOST all of them are self-taught and have made many detours. The purpose of relearning JavaScript and writing articles is to record the learning process, talk about my ideas and share them with everyone.
Learn what?
I plan to carry out a systematic study, mainly learning JavaScript language features, not involving specific practical projects. Start with the most basic variables and move on to objects, functions, classes, and so on. Try to cover every core syntax, every feature, and every detail. I also want to try to get into the language itself and the principles behind it.
In our study, we integrate all versions of the grammar, including ES5 and ES6 and later versions. Since ES6 syntax has been released for 6 years, both the front end and the back end are basically compatible with new syntax features. It is very mature, so there is no need to distinguish specific versions and learn them separately. However, we still need to understand the important features of different versions, so that it will be easier to find the cause when we encounter problems in the future.
I will be learning JavaScript from the perspective of the Node.js back end. There is no difference between the front end and the back end of the ECMAScript standard’s core syntax, so it will not affect learning.
The difficulties in
JavaScript is probably the strangest language in the world, and a bit anti-human, for reasons discussed later.
The difficulty of learning JavaScript lies in its unique features, which I see as four:
-
dynamic
Why JavaScript is a dynamic language, dynamic means a lot.
-
scope
Scope has many kinds of cases, can also change, for the old driver, not necessarily clear.
- Objects and functions
Objects have archetypes, and the inheritance of archetypes is very complex, and the scope is inextricably related. Functions are objects, so it’s confusing.
- asynchronous
This asynchrony is not the other asynchrony, which is a very difficult concept to understand.
It is these features that set it apart from other languages, both the best part and the hardest part to understand. Especially for developers who have moved from object-oriented languages like Java to JavaScript, it can be a painful process.
Share the way
I plan to share each knowledge point in an article or a small video. If there is something wrong, please point it out. If you have better ideas, you are also welcome to share them, so that we can discuss and make progress together.