Синтаксис JavaScript
Синтаксисом JavaScript називають набір правил, що визначають правильно структуровану програму JavaScript.
Наведені нижче приклади використовують функцію console.log() консолі, що присутня у більшості браузерів для стандартного виводу тексту .
У стандартній бібліотеці JavaScript відсутня офіційна стандартна функція виводу тексту. Зважаючи на те, що JavaScript в основному використовується для сценаріїв на стороні клієнта в сучасних веб-браузерах, і що майже всі веб-браузери забезпечують функцію оповіщення, іноді використовують команду alert.
Витоки
В першому абзаці специфікації JavaScript 1.1[1] Брендан Ейх узагальнив походження синтаксису: JavaScript запозичила більшість свого синтаксису від Java, а також успадкувала його від Awk і Perl, і Self, а саме її систему прототипів об'єктів.
Основи
Регістри
JavaScript є чутливим до регістру . Зазвичай назва конструктора починається з великої літери, а назва функції або змінної — з малої.
Приклад:
Змінні
Змінні в стандартному 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 не має конструктора, на відміну від масиву чи дати . Усі його методи «статичні», тобто «класові» методи.) Усі тригонометричні функції використовують кути, виражені в радіанах, а не в градусах чи градах .
Вла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 |
Джерела
Посилання
- Повторне вступ до JavaScript - Центр розробників Mozilla
- Оператори порівняння в JavaScript
- Стандартні посилання ECMAScript: ECMA-262
- Інтерактивні уроки JavaScript — на основі прикладу
- JavaScript на About.com: уроки та пояснення
- Навчання JavaScript
- Основні довідки Центру для розробників Mozilla для версій JavaScript 1.5, 1.4, 1.3 та 1.2
- Документація щодо мови Mozilla JavaScript