Лексична структура мови програмування є набором елементарних правил, що регламентують написання програм на цій мові. Вона вказує як мають виглядати імена змінних, визначає символи розділювачів для коментарів, та встановлює як один оператор програми відділяється від іншого.
- Чутливість до регістру, пробіли та розриви рядків
- Коментарі
- Літерали
- Ідентифікатори та зарезервовані слова
- Unicode
- Не обов‘язкові крапка з комою
Чутливість до регістру, пробіли та розриви рядків
JavaScript чутливий до регістру. Ключові слова, змінні, імена функцій та інші ідентифікатори мають набиратися одноманітно. Sun, sun чи SUN – будуть сприйматись як три різні імені.
Інтерпретатор JS ігнорує пробіли між лексемами у програмах. Інтерпретує табуляцію, керуючі символи ASCII та символи пробілів Unicode як пробільні символи. Також, з деякими виключеннями, ігнорує розриви рядків. Завдяки цьому JS код можна форматувати простіше для читання та розуміння людиною.
Коментарі
В JS використовується два види коментарів:
// Це однорядковий коментар // Він діє лише до кінця рядка. /* Текст, що знаходиться між цими символами також буде ігноруватись інтерпретатором. Це - багаторядковий коментар */
Літерали
Літерали – незмінні дані, що виконуються безпосередньо в самій програмі.
Це значення, що можна присвоювати змінним.
В JavaScript літералами можуть бути:
- Цифри;
- Слова;
- Булеві значення.
Наприклад:
int a = 50; // Числовий літерал - 50 String b = “Hello World”; // Текстовий літерал boolean c = true; // true - булевий
Ідентифікатори та зарезервовані слова
Ідентифікатор – це ім’я.
В JS вони використовуються для назв функцій, констант, класів, змінних, властивостей. Ідентифікатор у JS може починатися з літери, символу $, чи символу підкреслення. Він не може починатися з цифри.
Як і в будь-якій мові програмування, в JavaScript є зарезервовані слова . Частина з них використовується в мові, частина доступна для використання в ролі ідентифікаторів в окремих, рідких, випадках, частина є зарезервованою, але ще не використовується.
Unicode
На JS можна писати використовуючи Unicode.
Через те що не всі пристрої можуть відтворювати і правильно інтерпретувати Unicode, у JavaScript визначенні керуючі послідовності, що дозволяють записувати такі символи використовуючи ASCII. Такі послідовності починаються символами \u за якими слідують або чотири шістнадцяткових цифри (літери a-f), або від одної до шести шістнадцяткових цифри у фігурних дужках.
\u00e9 \u{1f600}
У випадках використання символів Unicode, варто памʼятати, що він допускає більш ніж один спосіб кодування окремого символу. В такому разі хоч символи й матимуть однаковий вигляд, двійкове кодування в них буде різне і в JS вони також будуть вважатися різними.
const café = 1; // Ця константа має імʼя ”caf\u{e9}" const café = 2; // Це інша константа: "cafe\u{301}” café // => 1: ця має одне значення café // => 2: ця, на вигляд така ж - інше
Не обов‘язкові крапка з комою
У багатьох мовах програмування крапка з комою використовуються для відокремлення операторів. У JS крапка з комою не завжди є обов‘язковою. Символ можна завжди опускати між операторами, якщо вони записані на окремих рядках. Наприклад у випадку:
a = 3; b = 4;
Крапку з комою можна не ставити, оскільки оператори знаходяться на різних рядках. Але у випадку запису в один рядок:
a = 3; b = 4;
Символ необхідний.
Також крапка з комою не обов’язкова в кінці програми, або якщо наступною лексемою у програмі є фігурні дужки.
Існує три виключення з загального правила яким керується інтерпретатор під час трактування розриву рядків, коли синтаксичний розбір другого рядка як продовження оператора з першого неможливий:
- Розрив рядка після одного з операторів return, throw, yield, break чи continue завжди сприймається як крапка з комою.
- Якщо треба використати операцію ++ або – – як постфіксну, вони мають знаходитися в тому рядку, що й вираз до якого вона використовується.
- Під час використання стрілочних функцій, сама стрілка => повинна знаходитися в рядку зі списком параметрів.