Coder Social home page Coder Social logo

leonardomso / 33-js-concepts Goto Github PK

View Code? Open in Web Editor NEW
62.4K 1.2K 8.7K 983 KB

📜 33 JavaScript concepts every developer should know.

License: MIT License

JavaScript 100.00%
javascript concepts nodejs react angular programming javascript-programming javascript-closures javascript-engines primitive-types

33-js-concepts's Introduction


33 Concepts Every JS Developer Should Know

33 Concepts Every JavaScript Developer Should Know

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 by 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:


  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, State Mutation and Event Propagation
  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

Reference

Articles

video Videos

⬆ Back to Top


2. Primitive Types

Reference

Articles

video Videos

⬆ Back to Top


3. Value Types and Reference Types

Articles

video Videos

⬆ Back to Top


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

Articles

video Videos

Books

⬆ Back to Top


5. == vs === vs typeof

Articles

video Videos

⬆ Back to Top


6. Function Scope, Block Scope and Lexical Scope

Books

Articles

video Videos

⬆ Back to Top


7. Expression vs Statement

Articles

video Videos

⬆ Back to Top


8. IIFE, Modules and Namespaces

Reference

Articles

video Videos

⬆ Back to Top


9. Message Queue and Event Loop

Articles

video Videos

⬆ Back to Top


10. setTimeout, setInterval and requestAnimationFrame

Articles

video Videos

⬆ Back to Top


11. JavaScript Engines

Articles

video Videos

⬆ Back to Top


12. Bitwise Operators, Type Arrays and Array Buffers

Articles

video Videos

⬆ Back to Top


13. DOM and Layout Trees

Books

Articles

video Videos

⬆ Back to Top


14. Factories and Classes

Articles

video Videos

⬆ Back to Top


15. this, call, apply and bind

Reference

Articles

video Videos

⬆ Back to Top


16. new, Constructor, instanceof and Instances

Articles

⬆ Back to Top


17. Prototype Inheritance and Prototype Chain

Reference

Articles

video Videos

Books

⬆ Back to Top


18. Object.create and Object.assign

Reference

Articles

video Videos

⬆ Back to Top


19. map, reduce, filter

Articles

video Videos

⬆ Back to Top


20. Pure Functions, Side Effects, State Mutation and Event Propagation

Articles

video Videos

⬆ Back to Top


21. Closures

Reference

Articles

video Videos

⬆ Back to Top


22. High Order Functions

Books

Articles

video Videos

⬆ Back to Top


23. Recursion

Articles

video Videos

⬆ Back to Top


24. Collections and Generators

Reference

Articles

video Videos

⬆ Back to Top


25. Promises

Reference

Articles

video Videos

⬆ Back to Top


26. async/await

Reference

Books

Articles

video Videos

⬆ Back to Top


27. Data Structures

Articles

video Videos

⬆ Back to Top


28. Expensive Operation and Big O Notation

Articles

video Videos

⬆ Back to Top


29. Algorithms

Articles

video Videos

⬆ Back to Top


30. Inheritance, Polymorphism and Code Reuse

Reference

Articles

video Videos

⬆ Back to Top


31. Design Patterns

Books

Articles

video Videos

⬆ Back to Top


32. Partial Applications, Currying, Compose and Pipe

Books

Articles

video Videos

⬆ Back to Top


33. Clean Code

Articles

video Videos

⬆ Back to Top

License

This software is licensed under MIT License, See License for more information ©Leonardo Maldonado.

33-js-concepts's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

33-js-concepts's Issues

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

Order by importance

I'm not a prolific JS dev or anything, but "Call Stack" being #1 seems pretty unimportant. Most if not ALL devs I've ever worked with know very little about this. I'm not saying it isn't important (at least at a base level of understanding) but - is it the most important thing on this list if you were trying to teach your friend?

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.

Fix typo

When I check during update Korean translate of 33-js-concepts, I found some typo like below.

Screen Shot 2019-10-23 at 1 27 19 PM

Screen Shot 2019-10-23 at 1 29 40 PM

Screen Shot 2019-10-23 at 1 31 56 PM

Screen Shot 2019-10-23 at 1 33 47 PM

Screen Shot 2019-10-23 at 1 36 49 PM

Can I fix this typo?

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

Information about generators

I didn't see any information about generators in there. It would be great to add some resources around them as well.

Checking for the Absence of a Value in JavaScript

I wrote an article not too long ago about checking for the absence of a value in JavaScript. It references == vs === vs typeof and briefly mentions Prototype Inheritance when discussing hasOwnProperty. Because of this I am not sure what section my article would go in (which is why I didn't make a pull request) so I thought I'd just link my article and let you decide if/where to put the article.

Is there any way we could get the translations to update automatically?

The problem with translations is that each time a resource is added to the main repo, the translation becomes out of date.

Is there a simple way to keep the translations but to automatically add any new links?

The only way I can think of would be a single repo with translated snippets for each section and resources as objects, and pull it all together in different languages... but I feel that's too much 😂

Otherwise maintainers of each translation will just have to watch the main repo and manually update their translation.

Contextualising links for each concept

Whilst each concept is very much represented by a wealth of reading and video material which should cover the concept in sufficient details. I do wonder whether there's a bit of context needed for the links addressing why this link has been chosen - What is particularly good about this link ? What part of the concept does this do a good job of explaining. I'm not sure many people have the brain power or the will to read 10 articles about the same concept if there's repetition of details.

Thanks for considering. I admit this would require quite a bit of work but might make sure that each concept is high impact in the material being displayed.

Add a "why" blurb to each concept

Why is the call stack important? In what situations is it most useful? When and where? Stage of career? Application?

I would find it useful to have a short and clear blurb for each in the readme.

Add new concept - Proxy objects

I'd like to add some great resources that teach about proxies in JavaScript as it is an important concept for every JS developer to know and is currently missing from the collection. I'd want to make this contribution under the hacktoberfest, could you kindly assign me this issue under hacktober-accepted label so that I can add some resources and references about the above mentioned concept?

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.

Unicode

Thanks for putting this together.
Do you think that Unicode/UTF8/UTF16 etc deserves a section?

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.

i talking about 5. double equals & triple equals section

hello.

thank you for this js-33-concepts repository.

i talk to you about that double equals & triple equals concepts section

the second link is wrong. this link click and web page load but http status 404 error message to show

A minimal Website maybe a great feature :)

I really love the project and its idea , that is also why i decided to translated into my own mother language.
Yet i think building a Website with these informations may benefit a lot more people and it would be easier to find.

I would be happy to hear your opinions about it.

Video unavailable

In the section -
7. Expression vs Statement,
in the video category,
Function Statements and Function Expressions — Codeacademy - video link is broken!

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.