Базові типи Рядки, Числа, Boolean
Базові типи: Рядки, Числа, Boolean
У цій статті зібрані особливості базових типів даних, які є важливими для програмістів з інших областей.
Javascript має і об'єктні типи даних і елементарні, які можна інтерпретувати як об'єкти.
Елементарні - створюються простою вказівкою даних:
Об'єктні – наприклад, через оператор new:
Насправді, хоча кожного елементарного типу є відповідний об'єкт, використовувати їх рекомендується. Це - відмерла частина мови.
Елементарні типи автоматично інтерпретуються як об'єкти при викликах методів, тому можна визначати довжину рядка як:
Тому іноді кажуть, що в JavaScript - всі об'єкти. Так зручно думати, але певна різниця все ж таки є.
Наприклад, типвидасть різний результат:
Це ще одна причина уникати використання об'єктів там, де існує елементарний тип: менше плутанини.
Перетворення типу можна явно зробити через його назву:
Далі розглянемо особливості кожного з цих типів.
Неточні обчислення.
Усі числа зберігаються у форматі float64, тобто 8 байт із плаваючою точкою. У цьому форматі не завжди можливі точні обчислення.
Маскування помилок
При операціях з Number ніколи не відбуваються помилки. Зате можуть бути повернуті спеціальні значення:
1/0 Number.POSITIVE_INFINITY (плюс нескінченність) -1/0 Number.NEGATIVE_INFINITY (мінус нескінченність) Number(“something”) NaN (Not-a-Number, результат помилкової операції)
Нескінченність буває корисно використовувати у звичайному коді. Наприклад, позитивна нескінченність Number.POSITIVE_INFINITY більше будь-якого Number, і навіть більше самої себе.
NaN – особливий результат.
- Будь-яка математична операція з NaN дає NaN:
- NaN + 1 = NaN
Цікаві методи
Округлення до потрібної точності після коми
Для цього використовується метод длявикористання.
Конвертація до числа
Стандартно конвертація здійснюється викликом Number(). Можна й простіше: +str.
Крім жорсткої конвертації є і більш м'яка фільтрація до:
parseFloat , parseInt переводять зліва направо, поки це можливо. Якщо взагалі неможливо – то NaN.
Другий аргумент parseInt - основа системи числення. Якщо його немає, то система сама намагається вгадати систему числення:
Математика
Усі математичні функції перебувають у " пакеті " Math. Не те, щоб у JavaScript є реальні пакети, просто так вийшло.
- Math.floor() / Math.round() / Math.ceil() - округлення
- Math.abs() - модуль числа
- Math.sin() і т.д
Рядки в JavaScript - повністю юнікодні.
- Пластики подвійні та одинарні працюють однаково
- Можна вказувати юнікодні символи через \uXXXX:
- "зірочка:\u002a"
Як це зазвичай і буває, у регулярках символ w означає латинські буквоцифри або підкреслення, але не українські букви.
Довжина рядка зберігається як length.
У javascript – особливий список значень, які при приведенні до Boolean стають false. Він відрізняється, наприклад, від аналогічного списку вPHP.
False false null undefined “” 0 Number.NaN True – все інше “0” “false”
Щоб привести значення до булевого - використовується або явна вказівка типу: Boolean(a) або подвійне заперечення: !!a