Синтаксисом JavaScript називають набір правил, що визначають правильно структуровану програму JavaScript.
Наведені нижче приклади використовують функцію console.log() консолі, що присутня у більшості браузерів для стандартного виводу тексту .
У стандартній бібліотеці JavaScript відсутня офіційна стандартна функція виводу тексту. Зважаючи на те, що JavaScript в основному використовується для сценаріїв на стороні клієнта в сучасних веббраузерах, і що майже всі веббраузери забезпечують функцію оповіщення, іноді використовують команду alert.
Витоки
В першому абзаці специфікації JavaScript 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)
присвоюється всім , а також використовується при перевірці на наявність об'єктів або їх властивостей, які не існують. У булевому контексті невизначене значення вважається хибним (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)).
Як і в , масиви використовують схему індексації на основі нуля: Значення, яке вставляється у порожній масив за допомогою методу 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 не має конструктора, на відміну від масиву чи дати . Усі його методи «статичні», тобто «класові» методи.) Усі тригонометричні функції використовують кути, виражені в радіанах, а не в градусах чи градах .
Властивість | Повертається значення, округлене до 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 1.1 specification
Посилання
- Повторне вступ до JavaScript - Центр розробників Mozilla
- Оператори порівняння в JavaScript
- Стандартні посилання ECMAScript: ECMA-262
- Інтерактивні уроки JavaScript — на основі прикладу
- JavaScript на About.com: уроки та пояснення
- Навчання JavaScript
- Основні довідки Центру для розробників Mozilla для версій JavaScript 1.5, , та
- Документація щодо мови Mozilla JavaScript
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Sintaksisom JavaScript nazivayut nabir pravil sho viznachayut pravilno strukturovanu programu JavaScript Navedeni nizhche prikladi vikoristovuyut funkciyu console log konsoli sho prisutnya u bilshosti brauzeriv dlya standartnogo vivodu tekstu U standartnij biblioteci JavaScript vidsutnya oficijna standartna funkciya vivodu tekstu Zvazhayuchi na te sho JavaScript v osnovnomu vikoristovuyetsya dlya scenariyiv na storoni kliyenta v suchasnih vebbrauzerah i sho majzhe vsi vebbrauzeri zabezpechuyut funkciyu opovishennya inodi vikoristovuyut komandu alert VitokiV pershomu abzaci specifikaciyi JavaScript 1 1 Brendan Ejh uzagalniv pohodzhennya sintaksisu JavaScript zapozichila bilshist svogo sintaksisu vid Java a takozh uspadkuvala jogo vid Awk i Perl i Self a same yiyi sistemu prototipiv ob yektiv OsnoviRegistri JavaScript ye chutlivim do registru Zazvichaj nazva konstruktora pochinayetsya z velikoyi literi a nazva funkciyi abo zminnoyi z maloyi Priklad Komentari Komentari ta yihnij sintaks takij samij yak u S ta bagatoh inshih mov programuvannya 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 ZminniZminni v standartnomu JavaScript ne ye tipizovani i bud yake znachennya mozhe zberigatisya v zminnij bud yakogo tipu Pochinayuchi z ES6 versiyi movi prezentovanoyi v 2015 roci zminni mozhut buti ogolosheni z let dlya zminnoyi rivnya bloku var dlya zminnoyi rivnya funkciyi abo const dlya konstanti Odnak hocha ob yekt priznachenij const nemozhlivo zminiti jogo vlastivosti mozhut zminyuvatis Pered ES6 zminni deklaruvalis lishe z operatorom var Identifikator povinen pochinatisya z literi pidkreslennya abo znaka dolara ale ne z cifri hocha nastupni simvoli mozhut buti ciframi 0 9 Oskilki JavaScript chutlivij do registru literi vid A do Z veliki literi ta vid a do z mali literi ne odne j te zh Primitivni tipi danihMova JavaScript viznachaye 6 primitivnih tipiv danih Ne viznacheno undefined Nul null Nomer Ryadok String Buleva Simvol Ne viznacheno undefined prisvoyuyetsya vsim a takozh vikoristovuyetsya pri perevirci na nayavnist ob yektiv abo yih vlastivostej yaki ne isnuyut U bulevomu konteksti neviznachene znachennya vvazhayetsya hibnim false znachennyam var test zminnu ogolosheno ale ne viznacheno prisvoyeno znachennya undefined var testObj console log test zminna test isnuye ale yiyi znachennya ni console log testObj myProp testObj isnuye znachennya ni vidobrazhaye undefined console log undefined null pereviryaye ne tip a znachennya otzhe vidobrazhaye true console log undefined null pereviryaye i tip i znachennya vidobrazhaye false Primitka span class p span span class nx x span span class w span span class o span span class w span span class kc undefined span span class p span ne ye nadijnim sposobom pereviriti chi zminna ne viznachena tomu sho u versiyah pered ECMAScript 5 pripustime napisannya span class kd var span span class w span span class kc undefined span span class w span span class o span span class w span span class s2 I m defined now span span class p span Bilsh nadijnim pidhodom ye porivnyannya za dopomogoyu span class p span span class ow typeof span span class w span span class nx x span span class w span span class o span span class w span span class s1 undefined span span class p span Taki funkciyi ne pracyuvatimut yak ochikuvalosya function isUndefined x var u return x u function isUndefined x return x void 0 function isUndefined x return typeof x undefined Null nul Na vidminu vid undefined neviznachenogo null chasto vstanovlyuyetsya shob vkazati sho zminna abo ob yekt buli ogolosheni ale viznacheno yak porozhni U bulevomu konteksti znachennya null vvazhayetsya pomilkovim znachennyam u JavaScript console log null undefined ne pereviryaye tip zavzhdi true console log null undefined pereviryaye tip zavzhdi false console log typeof null object true Nomer number Chisla predstavleni u dvijkovih formah IEEE 754 sho zabezpechuye tochnist majzhe 16 cifr Oskilki voni ye chislami z ruhomoyu komoyu voni ne zavzhdi tochno predstavlyayut realni chisla vklyuchayuchi drobi Ce staye problemoyu pri porivnyanni chi formatuvanni chisel Napriklad console log 0 2 0 1 0 3 vidobrazhaye true zgidno iz ECMASCRIPT 6 Specifications console log 0 94 0 01 vidobrazhaye 0 9299999999999999Ob yektiMova JavaScript zabezpechuye kilka integrovanih ob yektiv Voni vvazhayutsya chastinoyu specifikaciyi JavaScript Nezvazhayuchi na seredovishe JavaScript cej nabir ob yektiv zavzhdi dostupnij Masiv Masiv ce ob yekt JavaScript prototip yakogo stvorenij iz konstruktora Array specialno priznachenogo dlya zberigannya znachen danih indeksovanih cilimi klyuchami Masivi na vidminu vid bazovogo tipu ob yekta Object mistyat metodi ta vlastivosti shob dopomogti programistu v rutinnih zavdannyah napriklad priyednati join zrizati slice ta natisnuti push Yak i v simejstvi C masivi vikoristovuyut shemu indeksaciyi na osnovi nulya Znachennya yake vstavlyayetsya u porozhnij masiv za dopomogoyu metodu push zajmaye 0 j indeks masivu Data Ob yekt Date zberigaye kilkist milisekund z nulem sho stanovit 1970 01 01 00 00 00 UT i diapazon 10 8 dniv Isnuye kilka sposobiv nadannya argumentiv konstruktoru Date Zauvazhte sho misyaci bazuyutsya na nuli Pomilka Specialni povidomlennya pro pomilki mozhna stvoriti za dopomogoyu klasu Pomilka throw new Error Something went wrong Yih mozhna otrimuvati vikoristovuyuchi try catch finally bloki yak opisano v rozdili shodo obrobki viklyuchen Matematika math Ob yekt Math mistit rizni pov yazani z matematikoyu konstanti napriklad p ta funkciyi napriklad kosinus Zvernit uvagu sho ob yekt Math ne maye konstruktora na vidminu vid masivu chi dati Usi jogo metodi statichni tobto klasovi metodi Usi trigonometrichni funkciyi vikoristovuyut kuti virazheni v radianah a ne v gradusah chi gradah Vlastivosti ob yekta Math Vlastivist Povertayetsya znachennya okruglene do 5 cifr Opis Matematika E 2 7183 e osnova logarifma Matematika LN2 0 69315 Prirodnij logarifm 2 Matematika LN10 2 3026 Prirodnij logarifm 10 Matematika LOG2E 1 44427 Logarifm do osnovi 2 e Matematika LOG10E 0 43429 Logarifm do osnovi 10 z e Matematika PI 3 14159 p okruzhnist diametr kola Matematika SQRT1 2 0 70711 Kvadratnij korin Matematika SQRT2 1 4142 Kvadratnij korin 2DzherelaJavaScript 1 1 specificationPosilannyaPovtorne vstup do JavaScript Centr rozrobnikiv Mozilla Operatori porivnyannya v JavaScript Standartni posilannya ECMAScript ECMA 262 Interaktivni uroki JavaScript na osnovi prikladu JavaScript na About com uroki ta poyasnennya Navchannya JavaScript Osnovni dovidki Centru dlya rozrobnikiv Mozilla dlya versij JavaScript 1 5 ta Dokumentaciya shodo movi Mozilla JavaScript