Top Related Projects
The content behind MDN Web Docs
A book series (2 published editions) on the JS language.
JavaScript Style Guide
Clean Code concepts adapted for JavaScript
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
Coding articles to level up your development skills
Quick Overview
The javascript-tutorial/en.javascript.info repository is the English version of The Modern JavaScript Tutorial. It's a comprehensive, open-source resource for learning JavaScript from basics to advanced topics. The tutorial is regularly updated and covers the latest ECMAScript features.
Pros
- Extensive coverage of JavaScript topics, from fundamentals to advanced concepts
- Regularly updated to include the latest JavaScript features and best practices
- Open-source, allowing community contributions and improvements
- Well-structured content with clear explanations and practical examples
Cons
- May be overwhelming for absolute beginners due to its comprehensive nature
- Some advanced topics might require additional resources or prior programming experience
- Being a community-driven project, some sections may have inconsistent depth or quality
- Primarily text-based, which may not suit all learning styles (e.g., those who prefer video tutorials)
Getting Started
To access the tutorial:
- Visit the GitHub repository: https://github.com/javascript-tutorial/en.javascript.info
- Click on the "website" link in the repository description to access the live tutorial
- Alternatively, clone the repository to contribute or read offline:
git clone https://github.com/javascript-tutorial/en.javascript.info.git
- Start with the "Introduction" section and progress through the chapters
Note: This is not a code library, but an educational resource. There are no installation steps or code examples to run directly from the repository. Instead, readers are encouraged to follow along with the tutorial content and practice the provided examples in their own development environment.
Competitor Comparisons
The content behind MDN Web Docs
Pros of content
- Comprehensive coverage of web technologies beyond JavaScript
- Extensive community-driven contributions and translations
- Regularly updated with the latest web standards and best practices
Cons of content
- Less focused, specific JavaScript content compared to en.javascript.info
- Potentially overwhelming for beginners due to its broad scope
- Navigation can be more complex due to the vast amount of information
Code Comparison
en.javascript.info example:
let message = "Hello";
alert(message);
content example:
const greeting = 'Hello';
console.log(greeting);
Both repositories provide code examples, but en.javascript.info tends to focus more on interactive examples and step-by-step explanations, while content offers a wider range of examples across various web technologies.
Summary
content is a comprehensive resource for web developers, covering a broad range of topics beyond JavaScript. It benefits from extensive community contributions and regular updates. However, its vast scope can be overwhelming for beginners and may lack the focused JavaScript content found in en.javascript.info.
en.javascript.info, on the other hand, provides a more targeted approach to JavaScript learning, with interactive examples and detailed explanations. It may be more suitable for those specifically looking to improve their JavaScript skills.
Both repositories offer valuable resources for web developers, with the choice depending on the learner's specific needs and preferences.
A book series (2 published editions) on the JS language.
Pros of You-Dont-Know-JS
- Deep dive into JavaScript concepts, providing a comprehensive understanding of the language
- Focuses on the "why" behind JavaScript behaviors, not just the "how"
- Regularly updated to reflect the latest ECMAScript specifications
Cons of You-Dont-Know-JS
- Can be overwhelming for beginners due to its in-depth nature
- Less structured learning path compared to en.javascript.info
- Fewer practical examples and exercises
Code Comparison
en.javascript.info example:
let message = "Hello";
alert(message);
You-Dont-Know-JS example:
var x = "Hello";
(function IIFE(){
var x = "World";
console.log(x);
})();
console.log(x);
The en.javascript.info example demonstrates a simple, beginner-friendly approach to introducing concepts. In contrast, the You-Dont-Know-JS example delves into more complex topics like IIFEs and scope, showcasing its focus on deeper JavaScript understanding.
Both repositories offer valuable resources for learning JavaScript, but cater to different learning styles and experience levels. en.javascript.info provides a more structured, beginner-friendly approach with practical examples, while You-Dont-Know-JS offers a deep dive into the language's intricacies, suitable for those seeking a comprehensive understanding of JavaScript's inner workings.
JavaScript Style Guide
Pros of javascript
- Comprehensive style guide for JavaScript best practices
- Widely adopted in the industry, making it a valuable standard
- Includes ESLint configuration for easy implementation
Cons of javascript
- Focuses primarily on coding style rather than in-depth JavaScript concepts
- May be overwhelming for beginners due to its extensive rules
- Less interactive learning compared to en.javascript.info's tutorial format
Code Comparison
en.javascript.info example:
let message = 'Hello';
alert(message);
javascript example:
const message = 'Hello';
console.log(message);
The javascript style guide recommends using const
for variables that won't be reassigned and console.log()
for debugging instead of alert()
.
Summary
en.javascript.info is a comprehensive JavaScript tutorial covering a wide range of topics from basics to advanced concepts. It offers interactive examples and exercises, making it ideal for learners at various levels.
javascript, on the other hand, is a style guide that focuses on establishing coding conventions and best practices. It's widely used in the industry and comes with ESLint configuration, making it valuable for maintaining consistent code quality across projects.
While en.javascript.info is better for learning JavaScript concepts in-depth, javascript is more suitable for teams looking to establish coding standards and improve code consistency.
Clean Code concepts adapted for JavaScript
Pros of clean-code-javascript
- Focuses specifically on writing clean, maintainable JavaScript code
- Provides concise, practical examples of good coding practices
- Covers a wide range of topics related to code quality and best practices
Cons of clean-code-javascript
- Less comprehensive coverage of JavaScript language features
- Fewer in-depth explanations and tutorials
- May be less suitable for complete beginners to JavaScript
Code Comparison
en.javascript.info:
let user = {
name: "John",
age: 30
};
alert( user.name ); // John
alert( user.age ); // 30
clean-code-javascript:
const createUser = ({ name, age }) => ({
name,
age
});
const user = createUser({ name: 'John', age: 30 });
console.log(user.name); // John
console.log(user.age); // 30
The clean-code-javascript example demonstrates a more functional approach with object destructuring and a factory function, promoting cleaner and more maintainable code. The en.javascript.info example is more straightforward and beginner-friendly, focusing on basic object creation and property access.
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
Pros of javascript-algorithms
- Focuses specifically on algorithms and data structures
- Provides implementations in multiple programming languages
- Includes detailed explanations and complexity analysis for each algorithm
Cons of javascript-algorithms
- Less comprehensive coverage of general JavaScript concepts
- May be more advanced for beginners learning JavaScript
- Lacks interactive examples and exercises
Code Comparison
en.javascript.info example (Basic JavaScript):
let message = "Hello";
alert(message);
javascript-algorithms example (Binary Search algorithm):
function binarySearch(array, target) {
let left = 0;
let right = array.length - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
if (array[mid] === target) return mid;
if (array[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}
Summary
en.javascript.info is a comprehensive JavaScript tutorial covering a wide range of topics, suitable for beginners to advanced users. It offers interactive examples and exercises, making it an excellent resource for learning JavaScript from the ground up.
javascript-algorithms, on the other hand, focuses specifically on algorithms and data structures implemented in JavaScript and other languages. It's more suitable for those looking to improve their algorithmic skills or prepare for technical interviews, but may not be as beginner-friendly for those just starting with JavaScript.
Coding articles to level up your development skills
Pros of 30-seconds-of-code
- Concise, bite-sized code snippets for quick reference and implementation
- Wide variety of JavaScript utilities and helper functions
- Regularly updated with new snippets and improvements
Cons of 30-seconds-of-code
- Less comprehensive explanations compared to en.javascript.info
- May not cover fundamental concepts in-depth
- Focuses more on practical snippets rather than language theory
Code Comparison
en.javascript.info (explaining object methods):
let user = {
name: "John",
age: 30,
sayHi() {
alert(this.name);
}
};
30-seconds-of-code (utility function for deep object clone):
const deepClone = obj => {
if (obj === null) return null;
let clone = Object.assign({}, obj);
Object.keys(clone).forEach(
key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key])
);
return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : clone;
};
The en.javascript.info example focuses on explaining core language concepts, while 30-seconds-of-code provides ready-to-use utility functions. en.javascript.info offers more detailed explanations, making it better for learning, while 30-seconds-of-code is ideal for quick implementation of common tasks.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
The Modern JavaScript Tutorial
This repository hosts the English content of the Modern JavaScript Tutorial, published at https://javascript.info.
Translations
We'd like to make the tutorial available in many languages. Please help us to translate.
See https://javascript.info/translate for the details.
Contributions
We'd also like to collaborate on the tutorial with other people.
Something's wrong? A topic is missing? Explain it to people, add it as PR ð
You can edit the text in any editor. The tutorial uses an enhanced "markdown" format, easy to grasp. And if you want to see how it looks on-site, there's a server to run the tutorial locally at https://github.com/javascript-tutorial/server.
The list of contributors is available at https://javascript.info/about#contributors.
Structure
Every chapter, article, or task has its folder.
The folder is named like N-url
, where N
is a number for the sorting purposes and URL
is the URL part with the title of the material.
The type of the material is defined by the file inside the folder:
index.md
stands for a chapterarticle.md
stands for an articletask.md
stands for a task (solution must be provided insolution.md
file as well)
Each of these files starts from the # Main header
.
It's very easy to add something new.
â¥
Ilya Kantor @iliakan
Top Related Projects
The content behind MDN Web Docs
A book series (2 published editions) on the JS language.
JavaScript Style Guide
Clean Code concepts adapted for JavaScript
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
Coding articles to level up your development skills
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot