Skip to content

fix itnro #271

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 20, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions 1-js/01-getting-started/1-intro/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@

Програми на цій мові називаються *скриптами*. Їх можна писати прямо на сторінці в коді HTML і вони автоматично виконуються при завантаженні сторінки.

Скрипти виглядають і виконуються як простий текст. Для запуску, їм не потрібна спеціальна підготовка чи компілятор.
Скрипти надаються та виконуються як простий текст. Для запуску їм не потрібна спеціальна підготовка чи компілятор.

В цьому плані, JavaScript дуже відрізняється від іншої мови програмування — [Java](https://uk.wikipedia.org/wiki/Java).
У цьому плані JavaScript дуже відрізняється від іншої мови програмування — [Java](https://uk.wikipedia.org/wiki/Java).

```smart header="Чому цю мову називають <u>Java</u>Script?"
Коли мову JavaScript було створено, спочатку вона мала іншу назву: "LiveScript". Але тоді була дуже популярна мова програмування Java, тому було вирішено, що позиціонування нової мови як "молодшого брата" Java допоможе у її популяризації.

Але з часом JavaScript значно виріс і став повністю незалежною мовою програмування зі своєю специфікацією [ECMAScript](https://uk.wikipedia.org/wiki/ECMAScript), і зараз немає нічого спільного з Java.
```

Сьогодні, JavaScript може виконуватися не тільки в браузері, але й на сервері, або на будь-якому пристрої, який має спеціальну програму — [рушій JavaScript](https://uk.wikipedia.org/wiki/Рушій_JavaScript).
Сьогодні JavaScript може виконуватися не тільки у браузері, але й на сервері, або на будь-якому пристрої, який має спеціальну програму — [рушій JavaScript](https://uk.wikipedia.org/wiki/Рушій_JavaScript).

Браузер має вбудований рушій, який деколи називають "віртуальною машиною JavaScript".

Expand All @@ -41,13 +41,13 @@
Рушій застосовує оптимізації на кожному етапі процесу. Він навіть слідкує за скомпільованим скриптом під час його виконання, аналізує дані, які проходять через скрипт, і оптимізує машинний код на основі цих знань.
```

## Що може вбудований в браузер JavaScript?
## Що може вбудований у браузер JavaScript?

Сучасний JavaScript — це "безпечна" мова програмування. Вона не надає низькорівневого доступу до пам’яті чи процесора, оскільки початково була створена для браузерів, які цього не потребують.

Можливості JavaScript значно залежать від оточення, в якому він виконується. Наприклад, [Node.js](https://uk.wikipedia.org/wiki/Node.js) підтримує функції, які дозволяють JavaScript читати/записувати довільні файли, здійснювати мережеві запити, та інше.

Вбудований в браузер JavaScript може робити все, що зв’язано з маніпуляцією веб-сторінками, взаємодією з користувачем та веб-сервером.
Вбудований у браузер JavaScript може робити все, що зв’язано з маніпуляцією веб-сторінками, взаємодією з користувачем та веб-сервером.

Наприклад, вбудований у браузер JavaScript може:

Expand All @@ -59,7 +59,7 @@

## Що НЕ може вбудований в браузер JavaScript?

Можливості JavaScript в браузері обмежені з метою безпеки користувача. Мета полягає в тому, щоб заборонити небезпечним веб-сторінкам доступ до приватної інформації чи не дати пошкодити дані, що знаходяться на комп’ютері користувача.
Можливості JavaScript у браузері обмежені з метою безпеки користувача. Мета полягає в тому, щоб заборонити небезпечним веб-сторінкам доступ до приватної інформації чи не дати пошкодити дані, що знаходяться на комп’ютері користувача.

Приклади таких обмежень:

Expand All @@ -68,7 +68,7 @@
Сучасні браузери дозволяють працювати з файлами, але доступ до них обмежений і надається тільки тоді, коли користувач виконав відповідні дії, наприклад, перетягнув файл у вікно браузера чи вибрав його через теґ `<input>`.

Є можливість взаємодії з камерою/мікрофоном або іншими пристроями, але для цього потрібен явний дозвіл користувача. Тому сторінка, на якій увімкнений JavaScript, не може нишком увімкнути веб-камеру, спостерігати за оточенням і відсилати інформацію до [СБУ](https://uk.wikipedia.org/wiki/Служба_безпеки_України).
- Різні вкладки/вікна зазвичай не знають один про одного. Іноді це можливо, наприклад, коли одне вікно використовує JavaScript, щоб відкрити інше. Але навіть в цьому випадку JavaScript з однієї сторінки не має доступу до іншої, якщо вони з різних сайтів (мають різні домени, протоколи чи порти).
- Різні вкладки/вікна зазвичай не знають один про одного. Іноді це можливо, наприклад, коли одне вікно використовує JavaScript, щоб відкрити інше. Але навіть у цьому разі JavaScript з однієї сторінки не має доступу до іншої, якщо вони з різних сайтів (мають різні домени, протоколи чи порти).

Це називається "[Політикою того ж походження (Same Origin Policy)](https://uk.wikipedia.org/wiki/Політика_того_ж_походження)". Щоб обійти це обмеження, *обидві сторінки* повинні погодитися на обмін даними і містити JavaScript код, який спеціальним чином буде обмінюватися даними. Ми розглянемо це в посібнику.

Expand Down Expand Up @@ -106,7 +106,7 @@ JavaScript – це єдина браузерна технологія, яка

Приклади таких мов:

- [CoffeeScript](http://coffeescript.org/) — це "синтаксичний цукор" поверх JavaScript. Він вводить більш короткий синтаксис, дозволяючи нам писати більш чіткий і точний код. Зазвичай, це до вподоби програмістам на Ruby.
- [CoffeeScript](http://coffeescript.org/) — це "синтаксичний цукор" поверх JavaScript. Він вводить більш короткий синтаксис, що дозволяє нам писати більш чіткий і точний код. Зазвичай, це до вподоби програмістам на Ruby.
- [TypeScript](http://www.typescriptlang.org/) зосереджений на додаванні "строгої типізації даних", щоб спростити розробку і підтримку складних систем. Розробляється у Microsoft.
- [Flow](http://flow.org/) також додає типізацію даних, але іншим способом. Розробляється компанією Facebook.
- [Dart](https://www.dartlang.org/) — це автономна мова, яка має власний рушій, що працює в не-браузерних середовищах (як-от мобільні застосунки), але також може транспілюватися в JavaScript. Розробляється компанією Google.
Expand Down