by 186 contributors:

JavaScript (JS) is a lightweight, interpreted, programming language with first-class functions. Most well-known as the scripting language for Web pages, many non-browser environments use it such as node.js and Apache CouchDB. JS is a prototype-based, multi-paradigm, dynamic scripting language, supporting object-oriented, imperative, and functional programming styles. Read more about JavaScript.

This section of the site is dedicated to the JavaScript language itself, the parts that are not specific to Web pages, or other host environments. For information about APIs specific to Web pages, please see Web APIs and DOM.

The standard for JavaScript is ECMAScript. As of 2012, all modern browsers fully support  ECMAScript 5.1. Older browsers support at least ECMAScript 3. On June 17, 2015, ECMA International published the sixth major version of ECMAScript, which version is officially called ECMAScript 2015, and is more commonly referred to as ECMAScript 6 or ES6. The documentation presented covers ECMAScript 6 and some of the announced features in the next version of ECMAScript (ES2016).

Do not confuse JavaScript with the Java programming language. 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, semantics, and uses.


Learn how to program in JavaScript with guides and tutorials.


JavaScript Guide
If you are new to JavaScript, this guide will walk you through the language.
JavaScript technologies overview
Introduction to the web browser JavaScript landscape.
Introduction to Object Oriented JavaScript
Introduction to the concepts of object oriented programming in JavaScript.


A re-introduction to JavaScript
An overview for those who think they know about JavaScript.
JavaScript data structures
Overview of available data structures in JavaScript.
Equality comparisons and sameness
JavaScript provides three different value-comparison operations: strict equality using ===, loose equality using ==, and the method.


Inheritance and the prototype chain
Explanation of the widely misunderstood and under-estimated prototype-based inheritance.
Strict mode
A restricted variant of JavaScript.
JavaScript typed arrays
JavaScript typed arrays provide a mechanism for accessing raw binary data.
Memory Management
Memory life cycle and garbage collection in JavaScript.
Concurrency model and Event Loop
JavaScript has a concurrency model based on an "event loop".


Browse the complete JavaScript reference documentation.

Standard objects
Get to know standard built-in objects Array, Boolean, Date, Error, Function, JSON, Math, Number, Object, RegExp, String, Map, Set, WeakMap , WeakSet, and others.
Expressions and operators
Learn more about the behavior of JavaScript's operators instanceof, typeof, new, this, the operator precedence, and more.
Statements and declarations
Learn how do-while, for-in, for-of, try-catch, let, var, const, if-else, switch, and more JavaScript statements and keywords work.
Learn how to work with JavaScript's functions to develop your applications.

Tools & resources

Helpful tools while writing and debugging your JavaScript code.

Firefox Developer Tools
Scratchpad, Web Console, JavaScript Profiler, Debugger, and more.
Edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.
JavaScript Shells
A JavaScript shell allows you to quickly test snippets of JavaScript code.

Collaboration made easy.

Stack Overflow
Stack Overflow questions tagged with "JavaScript".
JavaScript versions and release notes
Browse JavaScript's feature history and implementation status.
Edit JavaScript, CSS, HTML and get live results. Use external resources and collaborate with your team online.

Join the JavaScript community

Choose your preferred method for joining the discussion:

Document Tags and Contributors

 Contributors to this page: jswisher, Potch, dphenderson, leonine, fscholz, Dolgoibimus, x2357, konyx, austinharper, serhiyv, DevAsh, jsx, smithgreen123, piyush.dholariya, JakenHerman, SphinxKnight, hudson123, Sheppy, boztek, pcx, nasko83, jajang20, Markus Prokott, lunix01, vaultx, TI3sjee1990, Deathwishx, darrenmeehan, kojioj, xfq, qixin2003, teoli, sparky11478, wikilike7, acwgdb, Sponnie, grimley517, marowilson, pink_lebron, tanusoha, iHaris93, markg, boonlue, madhuri, EmilyG, andrezsanchez, ashishbhatiya18, NISHANTSHRESHTH, mlex, stephaniehobson, manuel.aberg.cobo, kelunik, Plexianth, dharam, LOVELEELATANYA, MehLON, nanibrahma, dbruant, firabby, angel333, Oliver_Propst, vvsk, Bogdan, Trasvina, pselle, Cone, indrani7, irowe, Nickolay, heath, smartmonkey, DavidWalsh, akp, ashiq.techie, shubendra, Erdinc, gabriel_pipper, Domecraft, justgage, websigh, kunal_dhir, sunorry, jkachel, karedianoorsil, pablofiumara, anton, 1marc, imonlhec22, phillshaffer, Timmi, ChaitanyaGSNR, john_smith, firefoxapps, ethertank, solarce, jdaudier, haboqueferus,, jvns, allergic, stork, ercompton, jardrake, dmon2013,, stealth, Tallboy, galaxylord, janlehnardt, asanka-x, danielmcgaw, tregagnon,,, jchris, Liekearends, Fuzulli, austincheney, ericmdn, AllenWB, dflanagan, Jesse, sonujaiswar, shri_rpi, ilink, saneyuki_s, bingjie2680, sychonet, leobalter, klokan, fryn, siple007, rdela, Ali.MD, user01, Deltab, Sephr, Khakman, Mgjbot, Brettz9, Potappo, Kaixin110, Sevenspade, Azer, AndrewGoal, Dionys, BlindWanderer, Dan Smith, Hamstersoup, Kray2, Eric Suen, Verruckt, BijuGC, JohnJBarton1, Blakeross, HeroreV, Bobbysmith007, Kyuzz, Taken, 행복한고니, Timcn, Dria, Shelby, Chris, JhonnyX2003, Justdave, Serginandr, Adriannecurry, Johnsonne, Robindranatt, Lizator, Pizdorvan, Pizdorvanec, Chbok, Daniel Biddle, RJacinto, gandalf, Goodwill, Jeff Carr, MykMelez, Prodoc, H3h, Nevir, Justin Shreve, Mathieu Deaudelin, Stav
 Last updated by: jswisher,
Hide Sidebar