diff --git a/1-js/01-getting-started/1-intro/article.md b/1-js/01-getting-started/1-intro/article.md index 887e457d2..447d4cc17 100644 --- a/1-js/01-getting-started/1-intro/article.md +++ b/1-js/01-getting-started/1-intro/article.md @@ -1,6 +1,6 @@ # Вступ до JavaScript -Давайте розглянемо, що такого особливого в JavaScript, чого ми можемо досягти з її допомогою і які ще технології пов’язані з нею. +Давайте розглянемо, що такого особливого в JavaScript, що ми можемо досягти з її допомогою і які ще технології пов’язані з нею. ## Що таке JavaScript? @@ -15,7 +15,7 @@ ```smart header="Чому цю мову називають JavaScript?" Коли мову JavaScript було створено, спочатку вона мала іншу назву: "LiveScript". Але тоді була дуже популярна мова програмування Java, тому було вирішено, що позиціонування нової мови як "молодшої сестри" Java допоможе у її популяризації. -Але з часом JavaScript значно вирісла і стала повністю незалежною мовою програмування зі своєю специфікацією [ECMAScript](https://uk.wikipedia.org/wiki/ECMAScript), і зараз немає нічого спільного з Java. +Але з часом JavaScript значно вирісла й стала повністю незалежною мовою програмування зі своєю специфікацією [ECMAScript](https://uk.wikipedia.org/wiki/ECMAScript), і зараз немає нічого спільного з Java. ``` Сьогодні JavaScript може виконуватися не тільки у браузері, але й на сервері, або на будь-якому пристрої, який має спеціальну програму — [рушій JavaScript](https://uk.wikipedia.org/wiki/Рушій_JavaScript). @@ -28,7 +28,7 @@ - [SpiderMonkey](https://uk.wikipedia.org/wiki/SpiderMonkey) -- в Firefox. - ...Є також інші кодові назви як "Chakra" для IE, "JavaScriptCore", "Nitro" і "SquirrelFish" для Safari, та інші. -Написані вище терміни добре було б запам’ятати, оскільки вони використовуються в статтях розробників на просторах інтернету. Ми також будемо їх використовувати. Наприклад, якщо "можливість X підтримується в V8", тоді ймовірно це буде працювати в Chrome, Opera та Edge. +Написані вище терміни добре було б запам’ятати, оскільки вони використовуються в статтях розробників на просторах інтернету. Ми також будемо їх використовувати. Наприклад, якщо "можливість X підтримується в V8", тоді, ймовірно, це буде працювати в Chrome, Opera та Edge. ```smart header="Як рушії працюють?" @@ -38,14 +38,14 @@ 2. Потім він перетворює ("компілює") скрипт в тимчасову репрезентацію("байт код"). 3. І потім байт код виконується, причому дуже швидко. -Рушій застосовує оптимізації на кожному етапі процесу. Він навіть слідкує за скомпільованим скриптом під час його виконання, аналізує дані, які проходять через скрипт, і оптимізує байт код на основі цих знань. +Рушій застосовує оптимізації на кожному етапі процесу. Він навіть слідкує за скомпільованим скриптом під час його виконання, аналізує дані, які проходять через скрипт, і оптимізує байт-код на основі цих знань. ``` ## Що може вбудований у браузер JavaScript? Сучасний JavaScript -- це "безпечна" мова програмування. Вона не надає низькорівневого доступу до пам’яті чи процесора, оскільки початково була створена для браузерів, які цього не потребують. -Можливості JavaScript значно залежать від оточення, в якому вона виконується. Наприклад, [Node.js](https://uk.wikipedia.org/wiki/Node.js) підтримує функції, які дозволяють JavaScript читати/записувати довільні файли, здійснювати мережеві запити, та інше. +Можливості JavaScript значно залежать від оточення, в якому вона виконується. Наприклад, [Node.js](https://uk.wikipedia.org/wiki/Node.js) підтримує функції, які дозволяють JavaScript читати/записувати довільні файли, здійснювати мережеві запити тощо. Вбудована у браузер JavaScript може робити все, що пов’язано з маніпуляцією веб-сторінками, взаємодією з користувачем та веб-сервером. @@ -67,12 +67,12 @@ Сучасні браузери дозволяють працювати з файлами, але доступ до них обмежений і надається тільки тоді, коли користувач виконав відповідні дії, наприклад, перетягнув файл у вікно браузера чи вибрав його через теґ ``. - Є можливість взаємодії з камерою/мікрофоном або іншими пристроями, але для цього потрібен явний дозвіл користувача. Тому сторінка, на якій увімкнена JavaScript, не може нишком увімкнути веб-камеру, спостерігати за оточенням і відсилати інформацію до [СБУ](https://uk.wikipedia.org/wiki/Служба_безпеки_України). -- Різні вкладки/вікна зазвичай не знають один про одного. Іноді це можливо, наприклад, коли одне вікно використовує JavaScript, щоб відкрити інше. Але навіть у цьому разі JavaScript з однієї сторінки не має доступу до іншої, якщо вони з різних сайтів (мають різні домени, протоколи чи порти). + Є можливість взаємодії з камерою/мікрофоном або іншими пристроями, але для цього потрібен явний дозвіл користувача. Тому, сторінка, на якій увімкнена JavaScript, не може нишком увімкнути веб-камеру, спостерігати за оточенням і відсилати інформацію до [СБУ](https://uk.wikipedia.org/wiki/Служба_безпеки_України). +- Різні вкладки/вікна зазвичай не знають про одне одного. Іноді це можливо, наприклад, коли одне вікно використовує JavaScript, щоб відкрити інше. Але навіть у цьому разі JavaScript з однієї сторінки не має доступу до іншої, якщо вони з різних сайтів (мають різні домени, протоколи чи порти). Це називається "[Політикою того ж походження (Same Origin Policy)](https://uk.wikipedia.org/wiki/Політика_того_ж_походження)". Щоб обійти це обмеження, *обидві сторінки* повинні погодитися на обмін даними і містити JavaScript код, який спеціальним чином буде обмінюватися даними. Ми розглянемо це в посібнику. - Знову-таки, це обмеження для безпеки користувача. Сторінка за адресою `http://anysite.com`, яку відкрив користувач, не повинна мати доступ до іншої вкладки браузера з URL-адресою `http://gmail.com` і звідти викрадати інформацію. + Знову-таки, це обмеження існує задля безпеки користувача. Сторінка за адресою `http://anysite.com`, яку відкрив користувач, не повинна мати доступ до іншої вкладки браузера з URL-адресою `http://gmail.com` і викрадати звідти інформацію. - JavaScript може легко спілкуватися через мережу з сервером, від якого отримана поточна сторінка. Але її здатність отримувати дані з інших сайтів/доменів обмежена. Запит на інший домен також можливий, проте це потребує спеціального заголовку в HTTP від віддаленого сервера. Це зроблено з метою безпеки. ![](limitations.svg) @@ -90,7 +90,7 @@ ``` JavaScript – це єдина браузерна технологія, яка суміщає ці три речі. -Це і робить її унікальною. Ось чому JavaScript найбільш поширений засіб створення браузерних інтерфейсів. +Це й робить її унікальною. Ось чому JavaScript -- найбільш поширений засіб створення браузерних інтерфейсів. До слова, JavaScript також дозволяє створювати сервери, мобільні застосунки, тощо. @@ -98,7 +98,7 @@ JavaScript – це єдина браузерна технологія, яка Синтаксис JavaScript не задовольняє потреби кожного. Різні люди хочуть різних функцій. -Цього слід очікувати, тому що проекти і вимоги різні для кожного. +Цього слід очікувати, тому що проєкти і вимоги різні для кожного. Останнім часом з’явилося безліч нових мов, які *транспілюються* (конвертуються) в JavaScript до того, як виконаються в браузері. @@ -113,10 +113,10 @@ JavaScript – це єдина браузерна технологія, яка - [Brython](https://brython.info/) це транспілятор коду з мови Python в JavaScript, що дозволяє писати застосунки на чистому Python без використання JavaScript. - [Kotlin](https://kotlinlang.org/docs/js-overview.html) — це сучасна, лаконічна і безпечна мова програмування, яку можна компілювати для браузера або NodeJS. -Є ще більше мов. Звичайно, навіть якщо ми використовуємо одну з цих транспілюючих мов, ми також повинні знати JavaScript, щоб дійсно розуміти, що робимо. +Існують й інші мови. Звичайно, навіть якщо ми використовуємо одну з цих транспілюючих мов, ми також повинні знати JavaScript, щоб дійсно розуміти, що робимо. ## Підсумки - Мова JavaScript спочатку була створена лише як мова для браузера, але зараз її також використовують в інших середовищах. -- Сьогодні, JavaScript позиціонується як найбільш поширена мова для браузера, яка повністю інтегрована з HTML/CSS. +- Сьогодні JavaScript позиціонується як найбільш поширена мова для браузера, яка повністю інтегрована з HTML/CSS. - Є багато мов які "транспілюються" в JavaScript і надають певні функції. Рекомендується переглянути їх, принаймні мигцем, після освоєння JavaScript.