forked from mdn/content
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
142 lines (117 loc) · 11.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
---
title: JavaScript
slug: Web/JavaScript
tags:
- JavaScript
- Landing
- Landing page
- Learn
- l10n:priority
---
<div>{{JsSidebar}}</div>
<p><strong>JavaScript</strong> (<strong>JS</strong>) is a lightweight, interpreted, or <a href="https://en.wikipedia.org/wiki/Just-in-time_compilation">just-in-time</a> compiled programming language with {{Glossary("First-class Function", "first-class functions")}}. While it is most well-known as the scripting language for Web pages, <a href="https://en.wikipedia.org/wiki/JavaScript#Other_usage">many non-browser environments</a> also use it, such as {{Glossary("Node.js")}}, <a href="https://couchdb.apache.org/">Apache CouchDB</a> and <a href="http://www.adobe.com/devnet/acrobat/javascript.html">Adobe Acrobat</a>. JavaScript is a {{Glossary("Prototype-based programming", "prototype-based")}}, multi-paradigm, single-threaded, dynamic language, supporting object-oriented, imperative, and declarative (e.g. functional programming) styles. Read more <a href="/en-US/docs/Web/JavaScript/About_JavaScript">about JavaScript</a>.</p>
<p>This section is dedicated to the JavaScript language itself, and not the parts that are specific to Web pages or other host environments. For information about {{Glossary("API","API")}} specifics to Web pages, please see <a href="/en-US/docs/Web/API">Web APIs</a> and {{Glossary("DOM")}}.</p>
<p>The standards for JavaScript are the <a href="https://tc39.es/ecma262/">ECMAScript Language Specification</a> (ECMA-262) and the <a href="https://tc39.es/ecma402/">ECMAScript Internationalization API specification</a> (ECMA-402). The JavaScript documentation throughout MDN is based on the latest draft versions of ECMA-262 and ECMA-402. And in cases where some <a href="https://github.com/tc39/proposals">proposals for new ECMAScript features</a> have already been implemented in browsers, documentation and examples in MDN articles may use some of those new features.</p>
<p>Do not confuse JavaScript with the <a href="https://en.wikipedia.org/wiki/Java_(programming_language)">Java programming language</a>. Both "Java" and "JavaScript" are trademarks or registered trademarks of Oracle in the U.S. and other countries. However, the two programming languages have very different syntax, semantic, and use.</p>
<div class="callout">
<h4 id="Looking_to_become_a_front-end_web_developer">Looking to become a front-end web
developer?</h4>
<p>We have put together a course that includes all the essential information you need to
work towards your goal.</p>
<p><a href="/en-US/docs/Learn/Front-end_web_developer"><strong>Get started</strong></a></p>
</div>
<h2 id="Tutorials">Tutorials</h2>
<p>Learn how to program in JavaScript with guides and tutorials.</p>
<h3 id="For_complete_beginners">For complete beginners</h3>
<p>Head over to our <a href="/en-US/docs/Learn/JavaScript">Learning Area JavaScript topic</a> if you want to learn JavaScript but have no previous experience with JavaScript or programming. The complete modules available there are as follows:</p>
<dl>
<dt><a href="/en-US/docs/Learn/JavaScript/First_steps">JavaScript first steps</a></dt>
<dd>Answers some fundamental questions such as "what is JavaScript?", "what does it look like?", and "what can it do?", along with discussing key JavaScript features such as variables, strings, numbers, and arrays.</dd>
<dt><a href="/en-US/docs/Learn/JavaScript/Building_blocks">JavaScript building blocks</a></dt>
<dd>Continues our coverage of JavaScript's key fundamental features, turning our attention to commonly-encountered types of code blocks such as conditional statements, loops, functions, and events.</dd>
<dt><a href="/en-US/docs/Learn/JavaScript/Objects">Introducing JavaScript objects</a></dt>
<dd>The object-oriented nature of JavaScript is important to understand if you want to go further with your knowledge of the language and write more efficient code, therefore we've provided this module to help you.</dd>
<dt><a href="/en-US/docs/Learn/JavaScript/Asynchronous">Asynchronous JavaScript</a></dt>
<dd>Discusses asynchronous JavaScript, why it is important, and how it can be used to effectively handle potential blocking operations such as fetching resources from a server.</dd>
<dt><a href="/en-US/docs/Learn/JavaScript/Client-side_web_APIs">Client-side web APIs</a></dt>
<dd>Explores what APIs are, and how to use some of the most common APIs you'll come across often in your development work.</dd>
</dl>
<h3 id="JavaScript_guide">JavaScript guide</h3>
<dl>
<dt><a href="/en-US/docs/Web/JavaScript/Guide">JavaScript Guide</a></dt>
<dd>A much more detailed guide to the JavaScript language, aimed at those with previous programming experience either in JavaScript or another language.</dd>
</dl>
<h3 id="Intermediate">Intermediate</h3>
<dl>
<dt><a href="/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks">Understanding client-side JavaScript frameworks</a></dt>
<dd>JavaScript frameworks are an essential part of modern front-end web development, providing developers with proven tools for building scalable, interactive web applications. This module gives you some fundamental background knowledge about how client-side frameworks work and how they fit into your toolset, before moving on to tutorial series covering some of today's most popular ones.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript">A re-introduction to JavaScript</a></dt>
<dd>An overview for those who <em>think</em> they know about JavaScript.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Data_structures">JavaScript data structures</a></dt>
<dd>Overview of available data structures in JavaScript.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness">Equality comparisons and sameness</a></dt>
<dd>JavaScript provides three different value-comparison operations: strict equality using <code>===</code>, loose equality using <code>==</code>, and the {{jsxref("Global_Objects/Object/is", "Object.is()")}} method.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Closures">Closures</a></dt>
<dd>
<p>A closure is the combination of a function and the lexical environment within which that function was declared.</p>
</dd>
</dl>
<h3 id="Advanced">Advanced</h3>
<dl>
<dt><a href="/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain">Inheritance and the prototype chain</a></dt>
<dd>Explanation of the widely misunderstood and under-estimated prototype-based inheritance.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">Strict mode</a></dt>
<dd>Strict mode defines that you can not use any variable before initializing it. It is a restricted variant of ECMAScript 5, for faster performance and easier debugging.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Typed_arrays">JavaScript typed arrays</a></dt>
<dd>JavaScript typed arrays provide a mechanism for accessing raw binary data.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Memory_Management">Memory Management</a></dt>
<dd>Memory life cycle and garbage collection in JavaScript.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/EventLoop">Concurrency model and Event Loop</a></dt>
<dd>JavaScript has a concurrency model based on an "event loop".</dd>
</dl>
<h2 id="Reference">Reference</h2>
<p>Browse the complete <a href="/en-US/docs/Web/JavaScript/Reference">JavaScript reference</a> documentation.</p>
<dl>
<dt><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects">Standard objects</a></dt>
<dd>Get to know standard built-in objects {{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Error")}}, {{jsxref("Function")}}, {{jsxref("JSON")}}, {{jsxref("Math")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("RegExp")}}, {{jsxref("String")}}, {{jsxref("Map")}}, {{jsxref("Set")}}, {{jsxref("WeakMap")}}, {{jsxref("WeakSet")}}, and others.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Reference/Operators">Expressions and operators</a></dt>
<dd>Learn more about the behavior of JavaScript's operators {{jsxref("Operators/instanceof", "instanceof")}}, {{jsxref("Operators/typeof", "typeof")}}, {{jsxref("Operators/new", "new")}}, {{jsxref("Operators/this", "this")}}, the <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">operator precedence</a>, and more.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Reference/Statements">Statements and declarations</a></dt>
<dd>Learn how {{jsxref("Statements/do...while", "do-while")}}, {{jsxref("Statements/for...in", "for-in")}}, {{jsxref("Statements/for...of", "for-of")}}, {{jsxref("Statements/try...catch", "try-catch")}}, {{jsxref("Statements/let", "let")}}, {{jsxref("Statements/var", "var")}}, {{jsxref("Statements/const", "const")}}, {{jsxref("Statements/if...else", "if-else")}}, {{jsxref("Statements/switch", "switch")}}, and more JavaScript statements and keywords work.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Reference/Functions">Functions</a></dt>
<dd>Learn how to work with JavaScript's functions to develop your applications.</dd>
</dl>
<h2 id="Tools_resources">Tools & resources</h2>
<p>Helpful tools for writing and debugging your <strong>JavaScript</strong> code.</p>
<dl>
<dt><a href="/en-US/docs/Tools">Firefox Developer Tools</a></dt>
<dd><a href="/en-US/docs/Tools/Web_Console">Web Console</a>, <a href="/en-US/docs/Tools/Performance">JavaScript Profiler</a>, <a href="/en-US/docs/Tools/Debugger">Debugger</a>, and more.</dd>
<dt><a href="/en-US/docs/Web/JavaScript/Shells">JavaScript Shells</a></dt>
<dd>A JavaScript shell allows you to quickly test snippets of JavaScript code.</dd>
<dt><a href="https://learnjavascript.online/">Learn JavaScript</a></dt>
<dd>An excellent resource for aspiring web developers — Learn JavaScript in an interactive environment, with short lessons and interactive tests, guided by automated assessment. The first 40 lessons are free, and the complete course is available for a small one-time payment.</dd>
<dt><a href="https://togetherjs.com/">TogetherJS</a></dt>
<dd>Collaboration made easy. By adding TogetherJS to your site, your users can help each other out on a website in real-time!</dd>
<dt><a href="https://stackoverflow.com/questions/tagged/javascript">Stack Overflow</a></dt>
<dd>Stack Overflow questions tagged with "JavaScript".</dd>
<dt><a href="https://jsfiddle.net/">JSFiddle</a></dt>
<dd>Edit JavaScript, CSS, HTML and get live results. Use external resources and collaborate with your team online.</dd>
<dt><a href="https://plnkr.co/">Plunker</a></dt>
<dd>Plunker is an online community for creating, collaborating on and sharing your web development ideas. Edit your JavaScript, CSS, HTML files and get live results and file structure.</dd>
<dt><a href="https://jsbin.com/">JSBin</a></dt>
<dd>
<p>JS Bin is an open-source collaborative web development debugging tool.</p>
</dd>
<dt><a href="https://codepen.io/">Codepen</a></dt>
<dd>
<p>Codepen is another collaborative web development tool used as a live result playground.</p>
</dd>
<dt><a href="https://stackblitz.com/">StackBlitz</a></dt>
<dd>
<p>StackBlitz is another online playground/debugging tool, which can host and deploy full-stack applications using React, Angular, etc.</p>
</dd>
<dt><a href="https://runjs.app/">RunJS</a></dt>
<dd>
<p>RunJS is a desktop playground/scratchpad tool, which provides live results and access to both Node and Browser APIs.</p>
</dd>
</dl>