Синтаксис JavaScript

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Синтаксисом JavaScript називають набір правил, що визначають правильно структуровану програму JavaScript.

Наведені нижче приклади використовують функцію console.log() консолі, що присутня у більшості браузерів для стандартного виводу тексту .

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

Витоки[ред. | ред. код]

В першому абзаці специфікації JavaScript 1.1 [1] Брендан Ейх узагальнив походження синтаксису:

JavaScript запозичила більшість свого синтаксису від Java, а також успадкувала його від Awk і Perl, і Self, а саме її систему прототипів об'єктів.

Основи[ред. | ред. код]

Регістри[ред. | ред. код]

JavaScript є чутливим до регістру . Зазвичай назва конструктора починається з великої літери, а назва функції або змінної - з малої.

Приклад:

Коментарі[ред. | ред. код]

Коментарі та їхній синтакс такий самий як у С++ та багатьох інших мов програмування:

// a short, one-line comment

/* this is a long, multi-line comment
 about my script. May it one day
 be great. */

/* Comments /* may not be nested */ Syntax error */

Змінні[ред. | ред. код]

Змінні в стандартному JavaScript не є типізовані, і будь-яке значення може зберігатися в змінній будь-якого типу. Починаючи з ES6, версії мови, презентованої в 2015 році, змінні можуть бути оголошені з let (для змінної рівня блоку ), var (для змінної рівня функції ) або const (для константи). Однак, хоча об'єкт, призначений const неможливо змінити, його властивості можуть змінюватись. Перед ES6 змінні декларувались лише з оператором var . Ідентифікатор повинен починатися з літери, підкреслення ( _ ) або знака долара ( $ ), але не з цифри, хоча наступні символи можуть бути цифрами ( 0-9 ). Оскільки JavaScript чутливий до регістру, літери від «А» до «Z» (великі літери) та від «а» до «z» (малі літери) не одне й те ж.

Примітивні типи даних[ред. | ред. код]

Мова JavaScript визначає 6 примітивних типів даних :

  • Не визначено (undefined)
  • Нуль (null)
  • Номер
  • Рядок (String)
  • Булева
  • Символ

Не визначено (undefined)[ред. | ред. код]

Значення "undefined" присвоюється всім неініціалізованим змінним, а також використовується при перевірці на наявність об'єктів або їх властивостей, які не існують. У булевому контексті невизначене значення вважається хибним (false) значенням.

var test;                         // змінну оголошено, але не визначено
                                  // ... присвоєно значення undefined
var testObj = {};
console.log(test);                // змінна test існує, але її значення - ні ...
                                  
console.log(testObj.myProp);      // testObj існує, значення - ні ...
                                  // ... відображає undefined
console.log(undefined == null);   // перевіряє не тип, а значення, отже відображає true
console.log(undefined === null);  // перевіряє і тип, і значення, відображає false

Примітка: (x == undefined) не є надійним способом перевірити, чи змінна не визначена, тому що у версіях перед ECMAScript 5, припустиме написання var undefined = "I'm defined now"; . Більш надійним підходом є порівняння за допомогою (typeof x === 'undefined') . Такі функції не працюватимуть, як очікувалося:

function isUndefined(x) { var u; return x === u; }             
function isUndefined(x) { return x === void 0; }               
function isUndefined(x) { return (typeof x) === "undefined"; }

Null (нуль)[ред. | ред. код]

На відміну від undefined(невизначеного), null часто встановлюється, щоб вказати, що змінна або об'єкт були оголошені, але визначено як порожні. У булевому контексті значення null вважається помилковим значенням у JavaScript.

console.log(null == undefined);        // не перевіряє тип, завжди true
console.log(null === undefined);       // перевіряє тип, завжди false
console.log(typeof null === 'object'); // true

Номер (number)[ред. | ред. код]

Числа представлені у двійкових формах IEEE-754, що забезпечує точність майже 16 цифр . Оскільки вони є числами з плаваючою комою, вони не завжди точно представляють реальні числа, включаючи дроби.

Це стає проблемою при порівнянні чи форматуванні чисел. Наприклад:

console.log(0.2 + 0.1 == 0.3); // відображає true, згідно із ECMASCRIPT  6 Specifications
console.log(0.94 - 0.01);      // відображає 0.9299999999999999

Об'єкти[ред. | ред. код]

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

Масив[ред. | ред. код]

Масив - це об’єкт JavaScript, прототип якого створений із конструктора Array, спеціально призначеного для зберігання значень даних, індексованих цілими ключами. Масиви, на відміну від базового типу об’єкта (Object), містять методи та властивості, щоб допомогти програмісту в рутинних завданнях (наприклад, приєднати (join), зрізати (slice) та натиснути (push) ).

Як і в сімействі C, масиви використовують схему індексації на основі нуля: Значення, яке вставляється у порожній масив за допомогою методу push, займає 0-й індекс масиву.

Дата[ред. | ред. код]

Об'єкт Date зберігає кількість мілісекунд з нулем, що становить 1970-01-01 00:00:00 UT, і діапазон ± 10 8 днів. Існує кілька способів надання аргументів конструктору Date . Зауважте, що місяці базуються на нулі.

Помилка[ред. | ред. код]

Спеціальні повідомлення про помилки можна створити за допомогою класу Помилка :

throw new Error('Something went wrong');

Їх можна отримувати використовуючи, try...catch ...finally блоки, як описано в розділі щодо обробки виключень .

Математика (math)[ред. | ред. код]

Об'єкт Math містить різні пов'язані з математикою константи (наприклад, π ) та функції (наприклад, косинус). (Зверніть увагу, що об'єкт Math не має конструктора, на відміну від масиву чи дати . Усі його методи "статичні", тобто "класові" методи. ) Усі тригонометричні функції використовують кути, виражені в радіанах, а не в градусах чи градах .

Властивості об'єкта Math
Влаcтивість Повертається значення,
округлене до 5 цифр
Опис
Математика. Е 2.7183 e : основа логарифму
Математика. LN2 0,69315 Природний логарифм 2
Математика. LN10 2.3026 Природний логарифм 10
Математика. LOG2E 1,44427 Логарифм до основи 2 e
Математика. LOG10E 0,43429 Логарифм до основи 10 з e
Математика. ПІ 3.14159 π : окружність / діаметр кола
Математика. SQRT1_2 0.70711 Квадратний корінь ½
Математика. SQRT2 1.4142 Квадратний корінь 2
  1. JavaScript 1.1 specification