You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Давайте посмотрим, что такого особенного в JavaScript, чего можно достичь с его помощью и какие другие технологии хорошо с ним работают.
3
+
Давайте посмотрим, что такого особенного в JavaScript, чего можно достичь с его помощью, и какие другие технологии хорошо с ним работают.
4
4
5
5
## Что такое JavaScript?
6
6
7
7
Изначально *JavaScript* был создан, чтобы *"сделать веб-страницы живыми"*.
8
8
9
9
Программы на этом языке называются *скриптами*. Они могут встраиваться в HTML и выполняться автоматически при загрузке веб-страницы.
10
10
11
-
Скрипты распространяются и выполняются как простой текст. Им не нужна специальная подготовка или компиляция для запуска.
11
+
Скрипты распространяются и выполняются, как простой текст. Им не нужна специальная подготовка или компиляция для запуска.
12
12
13
13
Это отличает JavaScript от другого языка - [Java](https://ru.wikipedia.org/wiki/Java).
14
14
@@ -18,9 +18,9 @@
18
18
Со временем JavaScript стал полностью независимым языком со своей собственной спецификацией, называющейся [ECMAScript](http://ru.wikipedia.org/wiki/ECMAScript), и сейчас не имеет никакого отношения к Java.
19
19
```
20
20
21
-
Сегодня JavaScript может выполнятся не только в браузере, но и на сервере или на любом другом устройстве, которое имеет специальную программу, называющуюся ["движком" JavaScript](https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%B8%D0%B6%D0%BE%D0%BA_JavaScript).
21
+
Сегодня JavaScript может выполняться не только в браузере, но и на сервере или на любом другом устройстве, которое имеет специальную программу, называющуюся ["движком" JavaScript](https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%B8%D0%B6%D0%BE%D0%BA_JavaScript).
22
22
23
-
У браузере есть собственный движок, который иногда называют "виртуальная машина JavaScript".
23
+
У браузера есть собственный движок, который иногда называют "виртуальная машина JavaScript".
24
24
25
25
Разные движки имеют разные "кодовые имена". Например:
26
26
@@ -36,16 +36,16 @@
36
36
37
37
1. Движок (встроенный, если это браузер) читает ("парсит") текст скрипта.
38
38
2. Затем он преобразует ("компилирует") скрипт в машинный язык.
39
-
3. После этого машинный код запускается и весьма быстро работает.
39
+
3. После этого машинный код запускается и работает достаточно быстро.
40
40
41
41
Движок применяет оптимизации на каждом этапе. Он даже просматривает скомпилированный скрипт во время его работы, анализируя проходящие через него данные, и применяет оптимизации к машинному коду, полагаясь на полученные знания. В результате скрипты работают очень быстро.
42
42
```
43
43
44
44
## Что может JavaScript в браузере?
45
45
46
-
Современный JavaScript - это "безопасный" язык программирования. Он не предоставляет низкоуровневый доступ к памяти или процессору, потому что он изначально был создан для браузеров, не требующих этого.
46
+
Современный JavaScript - это "безопасный" язык программирования. Он не предоставляет низкоуровневый доступ к памяти или процессору, потому что изначально был создан для браузеров, не требующих этого.
47
47
48
-
Возможности JavaScript сильно зависят от окружения в котором он работает. Например, [Node.JS](https://ru.wikipedia.org/wiki/Node.js) поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов, и т.д.
48
+
Возможности JavaScript сильно зависят от окружения, в котором он работает. Например, [Node.JS](https://ru.wikipedia.org/wiki/Node.js) поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов и т.д.
49
49
50
50
В браузере для JavaScript доступно всё, что связано с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.
51
51
@@ -57,31 +57,31 @@
57
57
- Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения.
58
58
- Запоминать данные на стороне клиента ("local storage").
59
59
60
-
## Что НЕ может JavaScript в браузере?
60
+
## Чего НЕ может JavaScript в браузере?
61
61
62
62
Возможности JavaScript в браузере ограничены ради безопасности пользователя. Цель заключается в предотвращении доступа недобросовестной веб-страницы к личной информации или нанесения ущерба данным пользователя.
63
63
64
64
Примеры таких ограничений включают в себя:
65
65
66
66
- JavaScript на веб-странице не может читать/записывать произвольные файлы на жёстком диске, копировать их или запускать программы. Он не имеет прямого доступа к системным функциям ОС.
67
67
68
-
Современные браузеры позволяют ему работать с файлами, но с ограниченным доступом и предоставляют его только если пользователь выполняет определённые действия, такие как "перетаскивание" файла в окно браузера или его выбор с помощью тега `<input>`.
68
+
Современные браузеры позволяют ему работать с файлами, но с ограниченным доступом, и предоставляют его, только если пользователь выполняет определённые действия, такие как "перетаскивание" файла в окно браузера или его выбор с помощью тега `<input>`.
69
69
70
70
Существуют способы взаимодействия с камерой/микрофоном и другими устройствами, но они требуют явного разрешения пользователя. Таким образом, страница с поддержкой JavaScript не может незаметно включить веб-камеру, наблюдать за происходящим и отправлять информацию в [ФСБ](https://ru.wikipedia.org/wiki/%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%B0_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9_%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8).
71
-
- Различные окна/вкладки не знают друг о друге. Иногда одно окно, используя JavaScript, открывает другое окно. Но даже в этом случае, JavaScript с одной страницы не имеет доступа к другой, если они пришли с разных сайтов (с другого домена, протокола или порта).
71
+
- Различные окна/вкладки не знают друг о друге. Иногда одно окно, используя JavaScript, открывает другое окно. Но даже в этом случае JavaScript с одной страницы не имеет доступа к другой, если они пришли с разных сайтов (с другого домена, протокола или порта).
72
72
73
-
Это называется "Политика одинакового источника" (Same Origin Policy). Чтобы обойти это ограничение, обе страницы должны быть на это согласны и содержать JavaScript-код, который специальным образом обменивается данными.
73
+
Это называется "Политика одинакового источника" (Same Origin Policy). Чтобы обойти это ограничение, обе страницы должны согласиться с этим и содержать JavaScript-код, который специальным образом обменивается данными.
74
74
75
75
Это ограничение необходимо, опять же, для безопасности пользователя. Страница `http://anysite.com`, которую открыл пользователь, не должна иметь доступ к другой вкладке браузера с URL `http://gmail.com` и воровать информацию оттуда.
76
-
- JavaScript может легко взаимодействовать с сервером, с которого пришла текущая страница. Но его способность получать данные с других сайтов/доменов ограничена. Хотя это возможно, требуется явное соглашение (выраженное в заголовках HTTP) с удалённой стороной. Опять же, это ограничение безопасности.
76
+
- JavaScript может легко взаимодействовать с сервером, с которого пришла текущая страница. Но его способность получать данные с других сайтов/доменов ограничена. Хотя это возможно, требуется явное согласие (выраженное в заголовках HTTP) с удалённой стороной. Опять же, это ограничение безопасности.
77
77
78
78

79
79
80
-
Подобные ограничения не действуют, если JavaScript используется вне браузера, например — на сервере. Современные браузеры предоставляют плагины/расширения с помощью которых можно запрашивать дополнительные разрешения.
80
+
Подобные ограничения не действуют, если JavaScript используется вне браузера, например — на сервере. Современные браузеры предоставляют плагины/расширения, с помощью которых можно запрашивать дополнительные разрешения.
81
81
82
82
## Что делает JavaScript особенным?
83
83
84
-
Как минимум *три* сильные стороны JavaScript:
84
+
Как минимум,*три* сильные стороны JavaScript:
85
85
86
86
```compare
87
87
+ Полная интеграция с HTML/CSS.
@@ -90,17 +90,17 @@
90
90
```
91
91
JavaScript - это единственная браузерная технология, сочетающая в себе все эти три вещи.
92
92
93
-
Вот что делает JavaScript особенным. Вот почему это самый распространённый инструмент для создания интерфейсов в браузере.
93
+
Вот, что делает JavaScript особенным. Вот, почему это самый распространённый инструмент для создания интерфейсов в браузере.
94
94
95
95
Хотя, конечно, JavaScript позволяет делать приложения не только в браузерах, но и на сервере, на мобильных устройствах и т.п.
96
96
97
97
## Языки "над" JavaScript
98
98
99
99
Синтаксис JavaScript подходит не под все нужды. Разные люди хотят иметь разные возможности.
100
100
101
-
Это естественно, потому что проекты разные и требования к ним тоже разные.
101
+
Это естественно, потому что проекты разные, и требования к ним тоже разные.
102
102
103
-
Так, в последнее время, появилось много новых языков, которые *транспилируются* (конвертируются) в JavaScript прежде, чем запустятся в браузере.
103
+
Так, в последнее время появилось много новых языков, которые *транспилируются* (конвертируются) в JavaScript, прежде чем запустятся в браузере.
104
104
105
105
Современные инструменты делают транспиляцию очень быстрой и прозрачной, фактически позволяя разработчикам писать код на другом языке, автоматически преобразуя его в JavaScript "под капотом".
106
106
@@ -109,12 +109,12 @@ JavaScript - это единственная браузерная техноло
109
109
-[CoffeeScript](http://coffeescript.org/) добавляет "синтаксический сахар" для JavaScript. Он вводит более короткий синтаксис, который позволяет писать чистый и лаконичный код. Обычно такое нравится Ruby-программистам.
110
110
-[TypeScript](http://www.typescriptlang.org/) концентрируется на добавлении "строгой типизации" для упрощения разработки и поддержки больших и сложных систем. Разработан Microsoft.
111
111
-[Flow](http://flow.org/) тоже добавляет типизацию, но иначе. Разработан Facebook.
112
-
-[Dart](https://www.dartlang.org/) стоит особняком, потому что имеет собственный движок работающий вне браузера (например, в мобильных приложениях). Первоначально был предложен Google как замена JavaScript, но на данный момент, необходима его транспиляция для запуска, так же как для языков выше.
112
+
-[Dart](https://www.dartlang.org/) стоит особняком, потому что имеет собственный движок, работающий вне браузера (например, в мобильных приложениях). Первоначально был предложен Google, как замена JavaScript, но на данный момент необходима его транспиляция для запуска так же, как для вышеперечисленных языков.
113
113
114
114
Есть и другие. Но даже если мы используем один из этих языков, мы должны знать JavaScript, чтобы действительно понимать, что мы делаем.
115
115
116
116
## Итого
117
117
118
118
- JavaScript изначально создавался только для браузера, но сейчас используется на многих других платформах.
119
-
- Сегодня JavaScript занимает уникальную позицию в качестве самого распространённого языка для браузера обладающего полной интеграцией с HTML/CSS.
119
+
- Сегодня JavaScript занимает уникальную позицию в качестве самого распространённого языка для браузера, обладающего полной интеграцией с HTML/CSS.
120
120
- Многие языки могут быть "транспилированы" в JavaScript для предоставления дополнительных функций. Рекомендуется хотя бы кратко рассмотреть их после освоения JavaScript.
0 commit comments