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
Copy file name to clipboardExpand all lines: 1-js/01-getting-started/1-intro/article.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,17 +28,17 @@
28
28
-[SpiderMonkey](https://ru.wikipedia.org/wiki/SpiderMonkey) -- в Firefox.
29
29
- ...Ещё есть «Trident» и «Chakra» для разных версий IE, «ChakraCore» для Microsoft Edge, «Nitro» и «SquirrelFish» для Safari и т.д.
30
30
31
-
Постарайтесь запомнить приведенные выше термины, они часто используются в статьях для разработчиков. Мы тоже будем их использовать. Например, если «функциональность X поддерживается V8», тогда «Х», скорее всего, работает в Chrome и Opera.
31
+
Эти названия полезно знать, так как они часто используются в статьях для разработчиков. Мы тоже будем их использовать. Например, если «функциональность X поддерживается V8», тогда «Х», скорее всего, работает в Chrome и Opera.
32
32
33
33
```smart header="Как работают движки?"
34
34
35
35
Движки сложны. Но основы понять легко.
36
36
37
-
1. Движок (встроенный, если это браузер) читает («разбирает») сценарий.
37
+
1. Движок (встроенный, если это браузер) читает («парсит») сценарий.
38
38
2. Затем он преобразует («компилирует») сценарий в машинный язык.
39
-
3. После этого машинный код достаточно быстро запускается.
39
+
3. После этого машинный код запускается и весьма быстро работает.
40
40
41
-
Движок применяет оптимизации на каждом этапе. Он даже просматривает скомпилированный сценарий во время его работы, анализируя проходящие через него данные, и применяя оптимизации к машинному коду, полагаясь на полученные знания. В результате сценарии запускаются довольно быстро.
41
+
Движок применяет оптимизации на каждом этапе. Он даже просматривает скомпилированный скрипт во время его работы, анализируя проходящие через него данные, и применяет оптимизации к машинному коду, полагаясь на полученные знания. В результате скрипты работают очень быстро.
42
42
```
43
43
44
44
## Что может JavaScript в браузере?
@@ -47,7 +47,7 @@
47
47
48
48
Возможности Javascript сильно зависят от окружения в котором он работает. Например, [Node.JS](https://ru.wikipedia.org/wiki/Node.js) поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов, и т.д.
49
49
50
-
В браузере для JavaScript доступно всё, что связанно с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.
50
+
В браузере для JavaScript доступно всё, что связано с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.
51
51
52
52
Например, в браузере JavaScript может:
53
53
@@ -70,10 +70,10 @@
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
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
@@ -99,19 +99,19 @@ JavaScript - это единственная браузерная техноло
99
99
100
100
Синтаксис JavaScript подходит не под все нужны. Разные люди хотят иметь разные возможности.
101
101
102
-
Это ожидаемо, потому что проекты разные и требования к ним тоже разные.
102
+
Это естественно, потому что проекты разные и требования к ним тоже разные.
103
103
104
104
Так, в последнее время, появилось много новых языков, которые *транспилируются* (конвертируются) в JavaScript прежде, чем запустятся в браузере.
105
105
106
-
Современные инструменты делают транспиляцию очень быстрой и прозрачной, фактически позволяя разработчикам писать код на другом языке автоматически преобразуя его в JavaScript «под капотом».
106
+
Современные инструменты делают транспиляцию очень быстрой и прозрачной, фактически позволяя разработчикам писать код на другом языке, автоматически преобразуя его в JavaScript «под капотом».
107
107
108
108
Примеры таких языков:
109
109
110
110
-[CoffeeScript](http://coffeescript.org/) добавляет «синтаксический сахар» для JavaScript. Он вводит более короткий синтаксис, которые позволяет писать чистый и лаконичный код. Обычно такое нравится Ruby-программистам.
111
111
-[TypeScript](http://www.typescriptlang.org/) концентрируется на добавлении «строгой типизации» для упрощения разработки и поддержки больших и сложных систем. Разработан Microsoft.
112
112
-[Dart](https://www.dartlang.org/) стоит особняком, потому что имеет собственный движок работающий вне браузера (например, в мобильных приложениях). Первоначально был предложен Google как замена JavaScript, но на данный момент, необходима его транспиляция для запуска, так же как для языков выше.
113
113
114
-
Но даже если мы используем один из этих языков, мы, безусловно, должны знать JavaScript чтобы действительно понимать, что мы делаем.
114
+
Есть и другие. Но даже если мы используем один из этих языков, мы, безусловно, должны знать JavaScript, чтобы действительно понимать, что мы делаем.
0 commit comments