Базові типи Рядки, Числа, 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
  • NaN не дорівнює сам собі:
  • NaN == NaN // false
  • Можна перевірити за допомогою функції isNaN:
  • isNaN(NaN) // true
  • Цікаві методи

    Округлення до потрібної точності після коми

    Для цього використовується метод длявикористання.

    Конвертація до числа

    Стандартно конвертація здійснюється викликом Number(). Можна й простіше: +str.

    Крім жорсткої конвертації є і більш м'яка фільтрація до:

    parseFloat , parseInt переводять зліва направо, поки це можливо. Якщо взагалі неможливо – то NaN.

    Другий аргумент parseInt - основа системи числення. Якщо його немає, то система сама намагається вгадати систему числення:

    Математика

    Усі математичні функції перебувають у " пакеті " Math. Не те, щоб у JavaScript є реальні пакети, просто так вийшло.

    • Math.floor() / Math.round() / Math.ceil() - округлення
    • Math.abs() - модуль числа
    • Math.sin() і т.д

    Рядки в JavaScript - повністю юнікодні.

    • Пластики подвійні та одинарні працюють однаково
    • Можна вказувати юнікодні символи через \uXXXX:
    • "зірочка:\u002a"
  • Вбудовані регулярні вирази, методи replace/match:
  • "превед медведь".replace(/(.*?)\s(.*)/, "$2, $1!") // => ведмеде, превед!
  • Як це зазвичай і буває, у регулярках символ w означає латинські буквоцифри або підкреслення, але не українські букви.

    Довжина рядка зберігається як length.

    У javascript – особливий список значень, які при приведенні до Boolean стають false. Він відрізняється, наприклад, від аналогічного списку вPHP.

    False false null undefined “” 0 Number.NaN True – все інше “0” “false”

    Щоб привести значення до булевого - використовується або явна вказівка ​​типу: Boolean(a) або подвійне заперечення: !!a