aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/о_javascript/index.html
blob: 6d3682cf3a284ac43cd35dcfca66ab0790901865 (plain)
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
---
title: О JavaScript
slug: Web/JavaScript/О_JavaScript
tags:
  - Beginner
  - Introduction
  - JavaScript
  - Вступление
  - Новичку
translation_of: Web/JavaScript/About_JavaScript
---
<p>{{JsSidebar()}}</p>

<h2 id="Что_такое_JavaScript">Что такое JavaScript?</h2>

<p><strong>JavaScript</strong><sup>®</sup> (часто сокращают до <strong>JS</strong>) — это лёгкий, интерпретируемый, объектно-ориентированный язык с <a href="https://en.wikipedia.org/wiki/First-class_functions" title="https://en.wikipedia.org/wiki/First-class_functions">функциями первого класса</a>, самый известный скриптовый язык для веб-страниц, но также<a href="https://en.wikipedia.org/wiki/JavaScript#Uses_outside_web_pages"> используется во многих не браузерных окружениях.</a> <a href="https://en.wikipedia.org/wiki/Prototype-based_programming" title="Prototype-based">Прототипно-ориентированный</a>, мультипарадигменный язык сценариев, который поддерживает динамический, объектно-ориентированный, императивный и функциональный стили программирования.</p>

<p>JavaScript запускается на стороне клиента Интернета, который может использоваться для создания/программирования того, как веб-страницы будут вести себя при наступлении каких-либо событий. JavaScript легко изучить, а также это мощный скриптовый язык, широко используемый для контролирования поведения веб-страниц.</p>

<p>Вопреки распространенному мнению, <strong>JavaScript <em>не</em> является "интерпретируемым Java"</strong>. В двух словах, JavaScript — это динамический скриптовый язык, поддерживающий <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#Class-Based_vs._Prototype-Based_Languages">прототипное</a> создание объектов. Базовый синтаксис намеренно похож на Java и C++, чтобы уменьшить число новых концепций, необходимых для изучения языка. Такие языковые конструкции, как <code>if</code>, <code>for</code>, <code>while</code>, <code>switch</code>, <code>try ... catch</code> похожи на конструкции этих языков.</p>

<p>JavaScript может функционировать и как <a href="https://ru.wikipedia.org/wiki/Процедурное_программирование">процедурный</a>, и как <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">объектно-ориентированный</a> язык. Объекты можно создавать программно во время выполнения, путем присоединения методов и свойств или пустых объектов <strong>во время выполнения</strong>, в отличие от синтаксических определений классов в компилируемых языках, таких как С++ или Java. После того, как объект был создан, он может быть использован в качестве плана (или прототипа) для создания похожих объектов.</p>

<p>Динамические возможности JavaScript включают: создание объектов во время выполнения, переменное число параметров, динамическое создание скриптов (с помощью <code><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/eval">eval</a></code>), перебор объектов (с помощью <code>for ... in</code>), восстановление исходного кода (программы на JavaScript могут декомпилировать тела функций обратно в исходный код).</p>

<p>Для более глубокого погружения в программирование на JavaScript, используйте ссылки ниже в разделе <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/%D0%9E_JavaScript#Ресурсы_по_JavaScript">Ресурсы по JavaScript</a>.</p>

<h2 id="Какие_реализации_JavaScript_доступны">Какие реализации JavaScript доступны?</h2>

<p>Mozilla предоставляет две реализации JavaScript. <strong>Самая</strong> первая реализация JavaScript была создана Бренданом Эйхом (Brendan Eich) в компании Netscape, и с тех пор обновляется, чтобы соответствовать ECMA-262 Edition 5 и более поздним версиям. Этот движок называется <a href="https://developer.mozilla.org/ru/docs/SpiderMonkey">SpiderMonkey</a> и реализован на языке C/C++. Движок <a href="https://developer.mozilla.org/ru/docs/Rhino">Rhino</a> создан Норрисом Бойдом (Norris Boyd) и реализован на языке Java. Как и SpiderMonkey, Rhino соответствует ECMA-262 Edition 5.</p>

<p>Несколько оптимизаций, таких как TraceMonkey (Firefox 3.5), JägerMonkey (Firefox 4) и IonMonkey, добавили в SpiderMonkey со временем. Работа всегда продолжается, чтобы улучшить производительность выполнения JavaScript.</p>

<p>Кроме вышеприведенных существуют и другие популярные реализации:</p>

<ul>
 <li><a href="https://code.google.com/p/v8/">V8</a> от Google, используемый в браузерах Google Chrome и последних версиях Opera. Также используется в <a href="http://nodejs.org/">Node.js</a>.</li>
 <li><a href="http://www.webkit.org/projects/javascript/index.html">JavaScriptCore</a> (SquirrelFish/Nitro), используемый в WebKit браузерах, например, в Apple Safari.</li>
 <li><a href="https://dev.opera.com/blog/carakan/">Carakan</a> используется в старых версиях Opera.</li>
 <li><a href="http://en.wikipedia.org/wiki/Chakra_%28JScript_engine%29">Chakra</a> используется в Internet Explorer (язык, который реализует данный движок, называется JScript, чтобы избежать проблем с авторскими правами).</li>
</ul>

<p>Каждый движок mozilla.org предоставляет публичный API, который могут использовать разработчики приложений для интеграции JavaScript в своё ПО. Однако, наиболее распространенной средой для JavaScript являются веб-браузеры. Веб-браузеры обычно используют публичный API для создания <strong>объектов среды</strong>, отражающих <a href="http://www.w3.org/DOM/">DOM</a> в JavaScript.</p>

<p>JavaScript также применяется как скриптовый язык на стороне сервера. JavaScript сервер предоставляет объекты среды, представляющие объекты HTTP запросов и ответов, которые могут быть использованы программой на JavaScript для динамической генерации веб-страниц. Популярным примером является <a href="http://nodejs.org/">Node.js</a>.</p>

<h2 id="Ресурсы_по_JavaScript">Ресурсы по JavaScript</h2>

<dl>
 <dt><a href="https://developer.mozilla.org/ru/docs/SpiderMonkey">SpiderMonkey</a></dt>
 <dd>SpiderMonkey — это интерпретатор языка JavaScript, написанный на языке C. Информация, относящаяся к реализации движка JavaScript Mozilla на C/C++ (aka SpiderMonkey), включая, как вставлять его в приложения.</dd>
 <dt><a href="https://developer.mozilla.org/ru/docs/Rhino">Rhino</a></dt>
 <dd>Информация, относящаяся к реализации JavaScript, написанной на Java (aka Rhino).</dd>
 <dt><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Language_Resources" title="en-US/docs/JavaScript_Language_Resources">Ресурсы по языку</a></dt>
 <dd>Ссылки на опубликованные стандарты по JavaScript.</dd>
 <dt><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/A_re-introduction_to_JavaScript">Повторное введение в JavaScript</a></dt>
 <dd><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide">Руководство</a> и <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference">справочник </a>по JavaScript.</dd>
</dl>

<p>JavaScript® - торговая марка или зарегистрированная торговая марка Oracle в США и других странах.</p>