Skip to content

"Serious developers in other languages expect to put in the effort to learn most or all of the language(s) they primarily write in, but JS developers seem to stand out from the crowd in the sense of typically not learning very much of the language" - Kyle Simpson

Notifications You must be signed in to change notification settings

robertgliguroski/core-javascript-concepts

Repository files navigation

Core Javascript Concepts

Kyle Simpson, the author of the "You Don't Know JS" book series, once famously noted that the book series is about "taking seriously the task of learning all parts of JavaScript, not just some subset of the language that someone called “the good parts,” and not just whatever minimal amount you need to get your job done at work".

He further stated that "Serious developers in other languages expect to put in the effort to learn most or all of the language(s) they primarily write in, but JS developers seem to stand out from the crowd in the sense of typically not learning very much of the language".

This project is a small contribution to the mission of encouraging Javascript developers to learn as much as possible of the language. I completely share Kyle's position that Javascript is a language worthy of the effort and devotion that is needed to fully master and understand its core concepts.

For years, we as developers have been using Javascript daily, though mostly through a library like jQuery and mostly for DOM manipulation. But with the increased popularity of Javascript and the introduction of new libraries like React and frameworks like Angular, we now tend to write a huge part of our projects in Javascript(through those frameworks). The domain shifted from mostly(or only) DOM manipulation to writing a large part of the business logic in Javascript. And yet, we are still content with reading the specific framework's documentation and/or a couple of books/tutorials and continue using Javascript without fully understanding it.

My view on this topic is that in the same way that a database developer needs to know advanced SQL and have at least some minimum knowledge of how the DBMS works; and a .NET developer needs to have very good knowledge and mastery of the C# language and OOP in general in order to write quality code - a Javascript developer(or a full-stack developer who writes either pure Javascript or through some framework) should know and understand at least the very basics of the core concepts and principles of the language.

Contents

  1. Behavior delegation in JS(Objects linked to other objects - OLOO)
  2. Closure
  3. Lexical scope and hoisting
  4. The Revealing Module Pattern
  5. The "this" keyword

About

"Serious developers in other languages expect to put in the effort to learn most or all of the language(s) they primarily write in, but JS developers seem to stand out from the crowd in the sense of typically not learning very much of the language" - Kyle Simpson

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published