πŸ“œ 33 concepts every JavaScript developer should know.

Overview


33 Concepts Every JS Developer Should Know

33 Concepts Every JavaScript Developer Should Know

Follow me

Introduction

This repository was created with the intention of helping developers master their concepts in JavaScript. It is not a requirement, but a guide for future studies. It is based on an article written by Stephen Curtis and you can read it here.

πŸš€ Considered by GitHub as one of the top open source projects of 2018!

Community

Feel free to submit a PR adding a link to your own recaps or reviews. If you want to translate the repo into your native language, please feel free to do so.

All the translations for this repo will be listed below:


Table of Contents

  1. Call Stack
  2. Primitive Types
  3. Value Types and Reference Types
  4. Implicit, Explicit, Nominal, Structuring and Duck Typing
  5. == vs === vs typeof
  6. Function Scope, Block Scope and Lexical Scope
  7. Expression vs Statement
  8. IIFE, Modules and Namespaces
  9. Message Queue and Event Loop
  10. setTimeout, setInterval and requestAnimationFrame
  11. JavaScript Engines
  12. Bitwise Operators, Type Arrays and Array Buffers
  13. DOM and Layout Trees
  14. Factories and Classes
  15. this, call, apply and bind
  16. new, Constructor, instanceof and Instances
  17. Prototype Inheritance and Prototype Chain
  18. Object.create and Object.assign
  19. map, reduce, filter
  20. Pure Functions, Side Effects and State Mutation
  21. Closures
  22. High Order Functions
  23. Recursion
  24. Collections and Generators
  25. Promises
  26. async/await
  27. Data Structures
  28. Expensive Operation and Big O Notation
  29. Algorithms
  30. Inheritance, Polymorphism and Code Reuse
  31. Design Patterns
  32. Partial Applications, Currying, Compose and Pipe
  33. Clean Code

1. Call Stack

Articles

Videos

⬆ Back to Top


2. Primitive Types

Articles

Videos

⬆ Back to Top


3. Value Types and Reference Types

Articles

Videos

⬆ Back to Top


4. Implicit, Explicit, Nominal, Structuring and Duck Typing

Articles

Videos

⬆ Back to Top


5. == vs === vs typeof

Articles

Videos

⬆ Back to Top


6. Function Scope, Block Scope and Lexical Scope

Articles

Videos

⬆ Back to Top


7. Expression vs Statement

Articles

Videos

⬆ Back to Top


8. IIFE, Modules and Namespaces

Articles

Videos

⬆ Back to Top


9. Message Queue and Event Loop

Articles

Videos

⬆ Back to Top


10. setTimeout, setInterval and requestAnimationFrame

Articles

Videos

⬆ Back to Top


11. JavaScript Engines

Articles

Videos

⬆ Back to Top


12. Bitwise Operators, Type Arrays and Array Buffers

Articles

Videos

⬆ Back to Top


13. DOM and Layout Trees

Articles

Videos

⬆ Back to Top


14. Factories and Classes

Articles

Videos

⬆ Back to Top


15. this, call, apply and bind

Articles

Videos

⬆ Back to Top


16. new, Constructor, instanceof and Instances

Articles

⬆ Back to Top


17. Prototype Inheritance and Prototype Chain

Articles

Videos

⬆ Back to Top


18. Object.create and Object.assign

Articles

Videos

⬆ Back to Top


19. map, reduce, filter

Articles

Videos

⬆ Back to Top


20. Pure Functions, Side Effects and State Mutation

Articles

Videos

⬆ Back to Top


21. Closures

Articles

Videos

⬆ Back to Top


22. High Order Functions

Articles

Videos

⬆ Back to Top


23. Recursion

Articles

Videos

⬆ Back to Top


24. Collections and Generators

Articles

Videos

⬆ Back to Top


25. Promises

Articles

Videos

⬆ Back to Top


26. async/await

Articles

Videos

⬆ Back to Top


27. Data Structures

Articles

Videos

⬆ Back to Top


28. Expensive Operation and Big O Notation

Articles

Videos

⬆ Back to Top


29. Algorithms

Articles

⬆ Back to Top


30. Inheritance, Polymorphism and Code Reuse

Articles

Videos

⬆ Back to Top


31. Design Patterns

Articles

Videos

⬆ Back to Top


32. Partial Applications, Currying, Compose and Pipe

Articles

Videos

⬆ Back to Top


33. Clean Code

Articles

Videos

⬆ Back to Top

Comments
  • Call by reference vs Call by value

    Call by reference vs Call by value

    Hey,

    i noticed you guys were trying to inform your readers about the difference between call by value and call by reference and linked to this article. However from my understanding the information conveyed in the article is not correct. The article claims that

    One of the differences between the two is that Primitive Data Types are passed By Value and Objects are passed By Reference.

    In Javascript (at least from my understanding) everything is passed by value. You could also describe it as passed by sharing but Objects in javascript are certainly not passed by reference. Perhaps a better description of the topic can be found here

    opened by MariusMeiners 8
  • Chronological based on quality

    Chronological based on quality

    Well I have found this repo to be very useful but it seems to me that the items in the list are not in any chronological order. Correct me if wrong. And I feel that it should have something like top 3 that are very much essential and should not be left out.

    opened by rohitmi0023 5
  • Add articles from Daniel Li

    Add articles from Daniel Li

    I have written 3 articles which I think would fit this list. Feel free to read it yourself to ensure they meet your quality standards (feedback always welcomed!)

    Another note - I think the article (Not) Everything in JavaScript is an Object - Daniel Li fits two categories, and have added it under two headings. Please let me know if this is alright!

    opened by d4nyll 4
  • adding code of conduct file

    adding code of conduct file

    Every HacktoberFest-2022 participating repository needs a code_of_conduct.md file So I have created a well curated for this repository. If everything looks good, you can merge it and add hacktoberfest-accepted label to it.

    opened by anamikarawat2305 2
  • 33 JavaScript Concepts Explained

    33 JavaScript Concepts Explained

    I would like to create a repo where we use the resources herein and compile the information into readable explanations of the concepts.

    readme

    I have created a repo where we can do this. If this sounds like a good idea and anyone would like to help, I'd like to begin Immediately.

    opened by codingknite 2
  • Add resource for call, apply, and bind section

    Add resource for call, apply, and bind section

    I'd like to suggest you add Steve Griffith's video "JS Function Methods call( ), apply( ), and bind( )" in the relevant section on call, apply and bind. I find it to be far superior in both content and quality to some of the videos currently in this list. Thanks for considering!

    https://www.youtube.com/watch?v=uBdH0iB1VDM

    opened by zeitchef 2
  • Translate to French

    Translate to French

    Thanks @leonardomso for the great project!

    I'm starting to translate it to French over at robinmetral/33-concepts-js :fr::slightly_smiling_face:

    If any other francophone would like to join, let me know and I'll add you as a collaborator! :tada:

    opened by robinmetral 2
  • Testing in Javascript

    Testing in Javascript

    It will be really helpful if we can try adding up new section for testing in javascript. That can cover topics such as testing frameworks such as Mocha, Jasmine, Jest, etc and also giving much insight on TDD and BDD, etc.

    opened by Ashwin7mak 2
  • Javascript and data

    Javascript and data

    Hi, thank you for this awesome article πŸ‘

    I am just wondering, will you add something related to the AJAX, XHR, Fetch Api, Websockets, because these items are belong to a colossal part of everyday routine that every js developer do and I didn't find them in the list. Thanks

    opened by kinderswan 2
  • find some useful resources

    find some useful resources

    BTW! This is not an issue. You could check my repo https://github.com/rjoydip/awesome-js-resources. Maybe it could find some useful resource from here.

    Nice job :+1:

    opened by rjoydip-zz 2
  • Intro to Web API

    Intro to Web API

    Thanks for composing this list. Job nicely done!

    I am just wondering if we should add an intro to Web API to the list. JS developers must know this concept. Lots of devs who have been using Javascript for a while still think of setTimeout() as native Javascript.

    This is a good article for this purpose https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Introduction

    opened by foolishneo 2
Owner
Leonardo Maldonado
Software Engineer. JavaScript, React, TypeScript, GraphQL.
Leonardo Maldonado
A framework for every developer

Deprecated! Thanks for everyone who supported this framework, try Nexts N I T R O J S A framework for every developer NitroJS β€’ Discord Why you should

SKYLIX 5 Jun 23, 2022
This repository contains an Advanced Zoom Apps Sample. It should serve as a starting point for you to build and test your own Zoom App in development.

Advanced Zoom Apps Sample Advanced Sample covers most complex scenarios that you might be needed in apps. App has reference implementation for: Authen

Zoom 11 Dec 17, 2022
How often do you get asked about the gadgets or software that you use? If the answer is quite often, you should be trying show off out. Curate the list of gadgets and software and share it with your fans and followers.

Show Off - Showcase your setup! How often do you get asked about the gadgets or software that you use? If the answer is quite often, you should be try

Adithya Sreyaj 15 Nov 24, 2022
⛑️ JSON serialization should never fail

⛑️ JSON serialization should never fail. Features Prevent JSON.serialize() from: Throwing Changing types Filtering or transforming values unexpectedly

ehmicky 191 Dec 15, 2022
This repo has demos, content and documentation of javascript concepts and syntax, in their simplest form. Contribute by sharing your understanding of javascript! Hacktoberfest Accepted!

javascript-documentation open-source hacktoberfest2022 Submit your PR to this javascript-documentation repo ?? ?? ❗ This repo has some of my javascrip

Austin Lynch 7 Nov 2, 2022
:bathtub: Clean Code concepts adapted for JavaScript

clean-code-javascript Table of Contents Introduction Variables Functions Objects and Data Structures Classes SOLID Testing Concurrency Error Handling

Ryan McDermott 77.5k Jan 9, 2023
An interactive Bitcoin tutorial for orange-pilled beginners. Illustrates technical Bitcoin concepts using JavaScript and some Bitcoin Core RPC commands. Programming experience is helpful, but not required.

Try Bitcoin Try Bitcoin is an interactive Bitcoin tutorial inspired by and forked from Try Regex, which is inspired by Try Ruby and Try Haskell. It il

Stacie Waleyko 33 Nov 25, 2022
A tutorial for people that want to learn continuous delivery concepts by practicing.

Continuous delivery playground This tutorial walks you through setting up a continuous delivery pipeline from scratch. This guide is for people that w

Pablo Porto 7 Nov 24, 2022
This is a project that is in partial fulfillment of our CSCI 318 - Programming Language Concepts class of the Fall 2022 semester in New York Institute of Technology

StreetEasier A hub to search for apartments and roommate matching This project was bootstrapped with Create React App. Want to Test Yourself? 1.) Clon

Kennette James Maddela 3 Dec 5, 2022
This Repo Contains projects that demonstrate some concepts / algorithms / implemetation in some form of digital visualisation

Hacktoberfest 2022 OPEN FIRST Pull Request - GET STARTED WITH OPENSOURCE AND WIN SOME AWWSOME SWAGS ?? Contributors of Hacktoberfest 2022 This project

null 5 Nov 7, 2022
Cookbook Method is the process of learning a programming language by building up a repository of small programs that implement specific programming concepts.

CookBook - Hacktoberfest Find the book you want to read next! PRESENTED BY What is CookBook? A cookbook in the programming context is collection of ti

GDSC-NITH 16 Nov 17, 2022
The leaderboard website displays scores submitted by different players. It also allows you to submit your score. I created this project using ES6 concepts. I connected to the Leadboard API service

Leaderboard App The leaderboard website displays scores submitted by different players. It also allows you to submit your score I created this project

Kwasi Antwi Baayeh 5 Dec 21, 2022
If you want to know more about your favorite TV show then you've come to the right place!

Ultimate Show Guide We want to introduce you this web page that will help you to manage all your favourite TV series from place. ??️ Desktop version H

William Morales 6 Jun 23, 2022
🌐 How well do you know your top-level domains (TLDs)?

TLD-quiz How well do you know your top-level domains (TLDs)? Sure, you know .com and .net. It's not your first time on the Web. You might even know .i

Andrew Healey 4 Apr 27, 2022
Know more about who starred your repository πŸ•΅οΈ

⭐️ Know Your Stargazers ⭐️ Know more about who starred your repository ??️ Why know-your-stargazers When developing an open source project, sometimes

Hung Viet Nguyen 13 Sep 15, 2022
A full documentation on everything we know about Alpha 1.0.16 versions.

Minecraft's Alpha 1.0.16 Versions Before you start, make sure to watch RetroGamingNow's video about this first. Highly influenced (technically a port

_NexTre_ 44 Dec 23, 2022
When a person that doesn't know how to create a programming language tries to create a programming language

Kochanowski Online SprΓ³buj Kochanowskiego bez konfiguracji projektu! https://mmusielik.xyz/projects/kochanowski Instalacja StwΓ³rz nowy projekt przez n

Maciej Musielik 18 Dec 4, 2022
An easy to implement marquee JQuery plugin with pause on hover support. I know its easy because even I can use it.

Simple-Marquee Copyright (C) 2016 Fabian Valle An easy to implement marquee plugin. I know its easy because even I can use it. Forked from: https://gi

null 16 Aug 29, 2022
Own and know your contribution in Science - CitizenSci

Citizen Sci The Pinata API allows for decentralized storage of research data but not at the cost of losing control and privacy over the data as the ac

Kai-Ti Wu 4 Sep 18, 2022