l-known as the
scripting language for Web pages, [ many non-browser environments
](https://en.wikipedia.org/wiki/JavaScript#Other_usage) also use it, such as [
Node.js ](/en-US/docs/Glossary/Node.js) , [ Apache CouchDB
](https://couchdb.apache.org/) and [ Adobe Acrobat
](https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/) . JavaScript
is a [ prototype-based ](/en-US/docs/Glossary/Prototype-based_programming) ,
multi-paradigm, [ single-threaded ](/en-US/docs/Glossary/Thread) , [ dynamic
](/en-US/docs/Glossary/Dynamic_typing) language, supporting object-oriented,
imperative, and declarative (e.g. functional programming) styles.

JavaScript's dynamic capabilities include runtime object construction,
variable parameter lists, function variables, dynamic script creation (via [ `
eval ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) ), object
introspection (via [ ` for...in ` ](/en-
US/docs/Web/JavaScript/Reference/Statements/for...in) and [ ` Object `
utilities ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Object#static_methods) ), and
source-code recovery (JavaScript functions store their source text and can be
retrieved through [ ` toString() ` ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString) ).

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 [ APIs ](/en-US/docs/Glossary/API) that are specific to Web pages,
please see [ Web APIs ](/en-US/docs/Web/API) and [ DOM ](/en-
US/docs/Glossary/DOM) .

The standards for JavaScript are the [ ECMAScript Language Specification
](https://tc39.es/ecma262/) (ECMA-262) and the [ ECMAScript
Internationalization API specification ](https://tc39.es/ecma402/) (ECMA-402).
As soon as one browser implements a feature, we try to document it. This means
that cases where some [ proposals for new ECMAScript features
](https://github.com/tc39/proposals) have already been implemented in
browsers, documentation and examples in MDN articles may use some of those new
features. Most of the time, this happens between the [ stages
](https://tc39.es/process-document/) 3 and 4, and is usually before the spec
is officially published.

Do not confuse JavaScript with the [ Java programming language
](https://en.wikipedia.org/wiki/Java_\(programming_language\)) â
**JavaScript is _not_ "Interpreted Java" ** . 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 use.

JavaScript documentation of core language features (pure [ ECMAScript ](/en-
US/docs/Web/JavaScript/JavaScript_technologies_overview) , for the most part)
includes the following:

  * The [ JavaScript guide ](/en-US/docs/Web/JavaScript/Guide)
  * The [ JavaScript reference ](/en-US/docs/Web/JavaScript/Reference)

For more information about JavaScript specifications and related technologies,
see [ JavaScript technologies overview ](/en-
US/docs/Web/JavaScript/JavaScript_technologies_overview) .

##  Tutorials

Learn how to program in JavaScript with guides and tutorials.

###  For complete beginners

Head over to our [ Learning Area JavaScript topic ](/en-
US/docs/Learn/JavaScript) if you want to learn JavaScript but have no previous
experience with JavaScript or programming. The complete modules available
there are as follows:

[ JavaScript first steps ](/en-US/docs/Learn/JavaScript/First_steps)

    

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.

[ JavaScript building blocks ](/en-US/docs/Learn/JavaScript/Building_blocks)

    

Continues our coverage of JavaScript's key fundamental features, turning our
attention to commonly-encountered types of code blocks such as conditional
statement