Назад Вперед Зміст


Структура коду. Сучасний режим, "use strict"


Синтаксис мови такий же, як в C++.

У JavaScript є два обмеження, що стосуються імен змінних :

  1. Ім'я змінної повинне містити тільки букви, цифри або символи $ і _.
  2. Перший символ не має бути цифрою.

JavaScript - регистро-залежна мова. Імена JavaScript і javascript - різні імена!!

Усі ключові слова використовують тільки нижній регістр.

Оператори розділяються крапкою з комою.

Коментарі:

// однорядковий коментар

/*

багаторядковий
коментар

*/

Сучасний режим, "use strict"

Директива виглядає як рядок: "use strict" — і дослівно перекладається як “використовувати суворий (режим)”. Якщо вона прописана на початку скрипта, він буде виконуватися у “сучасному” режимі.

нестрогому (який іноді називають «брудним»- sloppy mode) режимі синтаксичні правила мови не такі суворі, а коли відбуваються деякі помилки, система ніяк не сповіщає про них користувача. Тобто помилки можуть бути проігноровані, а код, в якому вони допущені, зможе виконуватися далі. Це може призвести до несподіваних результатів виконання коду.

Незабаром ми будемо вивчати функції (такий собі спосіб групування команд). Забігаючи наперед, маймо на увазі, що "use strict" можна писати на початку функції. Таким чином, суворий режим буде використовуватися лише в межах цієї функції. Проте зазвичай люди використовують цей режим для всього скрипта.

Приклад 1

У суворому режимі необхідно обов'язково оголошувати змінні.

У прикладі вмкористовано режим "use strict" але є не оголошена змінна. Інтерпретатор показав помилку.

Змінна оголошена. Помилки немає.

Оголошення змінних

Глобальна змінна - це така змінна, яка оголошена поза тілом якій-небудь функції. Усі глобальні змінні є властивостями глобального об'єкту (у браузері - це window).

Локальні змінні - це такі, які визначені за допомогою ключового слова let усередині тіла якої-небудь функції. Локальні змінні існують тільки усередині тіла функції, в якій вони оголошені, а також доступні усередині її дочірніх функцій. Окрім цього якщо змінну у функції не оголосити, а відразу їй присвоїти значення, то вона теж буде глобальною.Але це тільки справедливо не для суворого режиму. У суворому режимі необхідно обов'язково оголошувати змінні.

Ключове слово const було введено в ES6 (2015).

  1. Змінні, визначені за допомогою const не можуть бути повторно оголошені.
  2. Змінні, визначені за допомогою const не можна перепризначити.
  3. Змінні, визначені за допомогою const мають область дії блока.

У новому стандарті для оголошення змінної введені службові слова const і let,можна використати var

Існує 2 основних відмінності var від let/const:

  1. Змінні var не мають блокової зони видимості, вони обмежені, як мінімум, тілом функціїvar виходить за межі блоків if, for і подібних.
  2. Оголошення (ініціалізація) змінних var робиться на початку виконання функції (чи скрипта для глобальних змінних).

Блокова зона видимості - це зручно. Тому багато років тому const і let були введені в стандарт і зараз є основним способом оголошення змінних.

У випадку з var можемо отримати неявну поведінку для інших розробників. const - незмінні дані, не треба розраховувати на "домовленість" з іншими розробниками, як у випадку з var. let - не доступна зовні блокових зон видимості, що не дозволить її неявно змінити.

Приклад

Зона видимості let test тільки усередині if, тому зовні вона невизначена.

Оскільки var ігнорує блоки, ми отримали глобальну змінну test.Зона видимості змінних var обмежується або функцією, або, якщо змінна глобальна, то скриптом. Такі змінні доступні за межами блоку.


Назад Вперед Зміст