Новини високих технологій
» » Типи даних JavaScript: основні поняття, перевірка, перетворення

Типи даних JavaScript: основні поняття, перевірка, перетворення

7-03-2019, 11:18
15 595
Якщо програміст працював з такими мовами, як C # або Java, він знає, що для оголошення змінної необхідно встановити статистичний тип даних, які будуть зберігатися в зазначеної змінної з самого початку. У разі, коли потрібно змінити значення зазначеної змінної на інший тип, система видасть помилку. На відміну від них, у jаvascript динамічний тип даних немає необхідності вказувати, який тип буде зберігати ця змінна, так як в процесі виконання контексту, JS постарається вирішити завдання у відповідності з заданими значеннями.

Основи даних в jаvascript

Дані JS поділяються на дві групи: примітивні об'єкти. Перші включають в себе текстовий рядок (String), логічні дані - істинні або помилкові (Logical) і числа (Number). Існує ще два особливих примітивних типу: Null Undefined. Вони демонструють взаємопов'язані невпорядковані типи даних jаvascript, що мають ім'я і володіють властивостями. Об'єкт спеціально створюється програмістом, серед них є деякі спеціальні: глобальний, прототип, масиви, функції, клас, зумовлені класи JS, клас RegExp для управління регулярними виразами і пошуку шаблонів у тексті, клас помилок для зберігання інформації, пов'язаної з помилками. Перші мови програмування не використовували об'єкти, а тільки змінні.

Змінні - це простір пам'яті комп'ютера, з яким розробники призначають вміст в основному з числовим значенням, типом символу або рядком символу - буквено-цифровим значенням, що складається тільки з тексту, змішаного з числами. В якості приклад типу даних jаvascript можна визначити змінну «a», яка містить 32 і записати її, як: a = 32. Потім можна змінити значення «a» і зробити: a = 78. Або зробити «a» еквівалентним значенням іншої змінної «b», наприклад: a = b, Змінні є елементарними об'єктами: числом, символом, істинним або хибним значенням, в той час, як об'єкти є складними, які можуть бути утворені великою кількістю інформації. Але обидві форми займають одне і те ж простір пам'яті, яка може бути більш або менш великим.

Примітивні типи

На відміну від об'єктів, примітивні типи даних jаvascript не є ссылочными, тобто, коли роблять присвоєння значень іншої змінної. В JS існує такі примітивні типи: логічні; числові; рядкові; нуль; невизначені. Логічні представляють одну з: "true" або "false". var boo1 = true; var boo2 = false; В JS є тільки один тип числа, він може бути написаний з або без десяткової крапки. Число також буває:

+Infinity; -Infinity; NaN(не число). var num1 = 32; var num2 = + Infinity; Рядки використовуються для збереження тексту. Вони повинні бути всередині подвійних або одинарних лапок. В JS рядка можна змінювати. var str1 = 'привіт, це я'; var str2 = "привіт, це я"; Змінна, яка не має значення, не визначена. var test Var; console.log (testVar); //не визначено Boolean - це тип даних, який повертає одне з двох: істина/хибність. Тип даних jаvascript Boolean названий на честь математика Джорджа Буля, тому завжди пишеться з великої літери. Можна продемонструвати принцип роботи даного типу на прикладі: Відкривають консоль JS і вводять кожне з таких тверджень, натискаючи «Enter» після кожної дії, щоб побачити результат. Звертають увагу на те, що однорядковий коментар використовується після кожного оператора, щоб пояснити, що він означає. 1 <10 //1 меньше 10? 100> 2000 //100 більше, ніж 2000? 2 === 2 //2 в точності дорівнює 2? false === false //
Функція Boolean повертає логічне значення змінної. Її також можна використовувати для пошуку логічного результату умови і вирази, це дозволяє використовувати jаvascript функціональний тип даних.

Незмінні символи

Символи - це новий примітивний тип JS. Вони створюються з допомогою функції: const mySymbol = Symbol('mySymbol'). Кожен раз, коли програміст викликає цю функцію, створюється новий і унікальний символ. Вони можуть бути використані, як константи, для подання таких понять, як кольору. Символи в основному використовуються в якості ключів властивостей і ніколи не конфліктують з будь-яким іншим ключем - символом або рядком. Наприклад, можна зробити об'єкт ітеративним, використовуваним через «for-of» цикл та інші мовні механізми, використовуючи символ, який зберігається в «Symbol.iterator» в якості ключа.
У рядку A символ використовується в якості ключа методу. Цей унікальний маркер робить об'єкт повторюваним і дозволяє використовувати «for-of» цикл. Неможливо привести символи рядків, тому що існує примус або неявне перетворення типів даних jаvascript. Заборона примусу запобігає деякі помилки, але також ускладнює роботу з символами. Новий тип примітиву - це токени, які є унікальними ідентифікаторами. Програміст створює символи з допомогою фабричній функції «Symbol()», яка слабо схожа на «String» - повернення рядків, коли викликається функція:
const symbol1 = Symbol(); Symbol() має необов'язковий рядковий параметр, який дозволяє дати новоствореному символу опис. Цей опис використовується, коли символ перетворюється в рядок через «toString()» або «String()».

Арифметичні оператори

JS, як і всі програмні мови, володіє вбудованою здатністю математичних дій, як калькулятор. Вони виконують над числами або змінними, які представлені, як числа.
Оператор додавання, представлений знаком плюс (+), додає два значення і повертає суму. var x = 2 + 2; //x returns 4 Оператор віднімання, представлений знаком мінус (-), віднімає два значення та повертає різницю. var x = 10 - 7; //x returns 3 Оператор множення, представлений зірочкою (*), примножує два значення і повертає добуток. var x = 4 * 5; //x returns 20 Оператор ділення, представлений косою рискою (/), розділяє два значення та повертає приватне. var x = 20 /2; //x returns 10 Менш знайомим є оператор модуля, який повертає залишок після поділу та представлений знаком відсотка (%). var x = 10 % 3; //returns 1 Це означає, що «3» входить до «10» три рази, з «1» залишком.

Інкремент виконує дію, в якому число буде збільшено на одиницю за допомогою оператора прирощення, представленого знаком подвійного плюса (++). var x = 10;x++; //x returns 11 Це відбувається після призначення. Також можна написати, що відбувається до призначення. Для порівняння: ++x; var x = 10; var y = x++; //y is 10 x is 11; а також: var x = 10; var y = ++x; //y is 11 x is 11. Декремент - кількість буде зменшено на одиницю за допомогою оператора декремента, представленого подвійним знаком мінус (--). var x = 10;x--; //x returns 9 Як і вище, це також можна написати:--x; Різновиди операторів JS: оператор присвоювання; арифметичні оператори инкремента і декремента; оператори рівності; реляційні оператори; логічні оператори.

Функції true або false

Оператори порівняння будуть оцінювати рівність або різниця двох значень і повертати «true» або «false». Вони зазвичай використовуються в логічних твердженнях. Два знака рівності (==) означають рівні в JS. Починаючим програмістам легко переплутати між одинарними, подвійними і потрійними знаками рівності, потрібно запам'ятати, що один знак рівності застосовує значення змінної і ніколи не оцінює рівність. var x = 8; var y = 8; x == y; //true Це вільний тип рівності і повертає «true» навіть якщо замість числа використовується рядок. var x = 8; var y = "8"; x == y; //true Три знака рівності (===) означають суворе рівність в JS. var x = 8; var y = 8; x === y; //true Це більш часто використовувана і більш точна форма визначення рівності, ніж звичайна функція «equal (==)», так як для повернення потрібно, щоб тип і значення були однаковими true.
var x = 8; var y = "8"; x === y; //false Знак оклику, за яким слід знак рівності (!=), означає, що він не дорівнює в JS. Це повна протилежність «==», та перевіряє лише значення, а не тип. var x = 50; var y = 50; x != y; //false Знак оклику, за яким слідують два знака рівності (!==), означає суворе не рівна. Це повна протилежність (===) і буде перевіряти, як значення, так і тип. Інший знайомий символ, менше ніж ( =), таке ж, як зазначено вище, але воно також буде дорівнює true.

Динамічна перевірка типів

Типи даних і змінних у мові jаvascript є основною мови програмування. Багато помилки виконання в JS є помилками типів. Наприклад, коли намагаються помножити «a number» на «a string», отримують помилку у вигляді «Not a Number» повернутого значення. Іноді при виклику функцій і отримують помилку «невизначена is not a function», це відбувається, коли намагаються отримати доступ до властивості, що не визначено. Так як JS не може знайти властивість, то повертає його значення за замовчуванням в резервний: undefined. Інша поширена помилка, пов'язана з типом, коли намагаються змінити або отримати доступ до властивості до значення, яке є null або undefined. Тут немає таких конструкторів, як Undefined або Null.
Система типів JS допомагає уникнути поширених помилок. За визначенням, він є интерпретируемым і динамічним мовою, і вимагає, щоб система типів працювала під час виконання коду. Мова також намагається допомогти, мовчки конвертуючи типи значень. Зміна типу або примус - це причина, по якій багато розробники переключаються на суворе використання(===) для перевірки рівності значень. Динамічна перевірка типу даних jаvascript виконується через бібліотеку TypeRight. Серед інших особливостей він використовує підхід для реалізації наступних псевдокласів, єдина мета яких - бути правими сторонами instanceof оператора: PrimitiveUndefined. PrimitiveNull. PrimitiveBoolean. PrimitiveNumber. PrimitiveString. PrimitiveSymbol. TypeRight в даний час не надає клас для перевірки факту, чи є значення об'єктом, але його можна легко додати.

Контейнери змінних

Змінні в JS - це контейнери, які містять повторно використовувані дані. До ES2015 змінні jаvascript оголошувалися виключно з допомогою ключового слова var: var x; var y; var z; Сьогодні змінні задаються типами: var, let і const. Вони по-своєму унікальні і служать для підвищення ефективності розробки коду, проте рекомендується використовувати: let - по можливості і const - всякий раз, коли значення змінної повинно залишатися постійним. Використання змінних для зберігання даних є основою мови і складається з трьох частин. Оголошення змінної - тут змінна зареєстрована у відповідній області видимості. Приклади оголошень змінних: var x; var cup; var car. Ініціалізація відбувається при оголошенні змінної. Тут їй призначається пам'ять або простір з допомогою движка jаvascript. З-за цього, як тільки змінна оголошена, вона приймає значення undefined навіть перед присвоюванням. Присвоєння змінній - є найбільш важливим кроком при використанні. Тут змінної присвоюються дані, які є значеннями з використанням оператора присвоювання «=». Значення jаvascript приймають один із стандартних типів даних: рядок; число; логічний; нуль; невизначений. Синтаксис для призначення типів можна побачити вище тільки з рядками, що мають одинарні або подвійні лапки. Також логічні значення можуть бути або істиною, або брехнею. При іменуванні змінних в jаvascript необхідно дотримуватися певні правила, а саме: Імена повинні починатися з малої літери. Імена не можуть містити символи або починатися з символів. Імена не можуть починатися з цифри. Імена можуть містити поєднання рядків верхнього регістру, рядків нижнього регістру і цифр.

Способи ініціалізації JS

Змінна ініціалізується, коли її вміст або значення встановлюються вперше. Наприклад, ціна = 2255 - це може бути спосіб ініціалізації змінної. Вона може бути оголошена і ініціалізована одночасно. Наприклад, можна написати змінну "ціна = 2255", з якої змінна була оголошена і ініціалізована в одному рядку. JS не вимагає оголошення типу змінних і навіть дозволяє змінної зберігати вміст різних типів в різний час. Наприклад, можна використовувати "ціну = 2255", а в більш пізньому місці написати ціну = «дуже дорого». Це те, що в інших мовах може призвести до помилки, але приймається jаvascript.
JS дозволяє використовувати змінну без її оголошення. У багатьох мовах програмування необхідно оголосити змінну, перш ніж її можна буде використовувати, але JS не зобов'язує. Коли мова знаходить не оголошену змінну, він автоматично створює змінну і дозволяє її використання. Неправильне використання ключового слова «var» може призвести до помилки, із-за якої JS перестає працювати, то є веб-сторінка буде відображатися неправильно, var використовується тільки для оголошення змінної, її не можна використовувати ні для чого іншого. Як тільки змінна була оголошена, вона буде використовуватися без попереднього їй ключового слова var. Якщо змінна вже оголошена, jаvascript спробує продовжити і отримати її.

Демонстрація роботи

Можна продемонструвати роботу коду, щоб закріпити основні поняття типів даних мови jаvascript, програма зчитує код, зазначений на малюнку та збережений у файлі розширення html.
Після візуалізації результату переконуються, що веб-сторінка відображається нормально, тобто jаvascript виконується нормально, а очікуваний результат повинен показати наступне: Змінна ціна дійсна: undefined (прийняти). Змінна data1 дійсна null (прийняти). Змінна ціна дійсна: 3255 (прийняти). Подвійна ціна: 651 (прийняти). Сума, отримана в результаті множення ціни на кількість, становить: 3255 (прийняти). Змінна ціни тепер: дуже дорога (прийняти). Подвійна ціна: NaN (прийняти). Змінна ціни була оголошена вдруге і тепер дійсна 9955 (прийняти). Змінна $ discount_applied: 055 (прийняти).
Розуміння того, як працює мова, автоматично зробить розробника кращим програмістом. Але враховуючи, що «практика удосконалює», недостатньо знати тільки теорію, важливо почати застосовувати на практиці основи бази даних jаvascript та функціонування даних. Ознайомившись з вищенаведеною інформацією, починаючому програмісту нескладно буде відповісти на питання про те, скільки типів даних в мові jаvascript.
Цікаво по темі
Об'єкти JavaScript приклади
Об'єкти JavaScript приклади
Об'єкти є наріжним каменем jаvascript. Вбудовані типи даних представлені як об'єкти. Щоб бути успішним розробником jаvascript, потрібно
Функція визначення розміру JavaScript: string.length
Функція визначення розміру JavaScript: string.length
Рядки - важлива форма подання даних. Розмір рядка перестав бути просто значенням. Ефективні алгоритми інтерпретують його як дане, яке може керувати
Типи даних в "Сі". Програмування на мові Сі"
Типи даних в "Сі". Програмування на мові Сі"
Типи даних в Сі - клас даних, значення яких мають схожі характеристики. Тип визначає внутрішнє подання даних у пам'яті. Основні типи даних: логічний,
Синтаксис JavaScript parseInt: приклади використання
Синтаксис JavaScript parseInt: приклади використання
Розпізнати в рядку число і бути впевненим, що в алгоритмі використовується значення змінної, тип якої - число, необхідно майже в кожному алгоритмі.
Приклади застосування методу JavaScript length
Приклади застосування методу JavaScript length
Довжина рядка, числа або іншого елемента скрипта має істотне значення. Особливістю підходу мови jаvascript до поняття довжини є можливість
Javascript Array для збереження необмеженої кількості змінних
Javascript Array для збереження необмеженої кількості змінних
Логічно масив займає проміжне положення між змінними і об'єктами. Практично не слід надавати особливого значення словам. У програмі є змінні і код.