Типы данных

Что произойдет, если мы попробуем умножить число на строку? JavaScript вернет NaN (не число), то самое значение. Оно возникает там, где вместе используются несовместимые значения. В данно случае число и строка:

3 * 'Dracarys'; // NaN

Внутри высокоуровневых языков программирования, данные разделяются по типам. Любая строка относится к типу String, а числа к типу Number и BigInt (очень большие числа). Зачем нужны типы? Для защиты программы от трудноотловимых ошибок. Типы определяют две вещи:

  • Возможные (допустимые) значения. Например числа в JavaScript делятся на две типа: Number и BigInt. Первые это все числа ниже определенного порога (его можно посмотреть), вторые выше. Такое разделение связано с техническими особенностями работы аппаратуры.
  • Набор операций, которые можно выполнять над этим типом. Например операция умножения имеет смысл для типа «целые числа». Но не имеет смысла для типа «строки»: умножать слово «мама» на слово «блокнот» — бессмыслица.

JavaScript ведет себя двояко когда встречается с нарушениями. В некоторых ситуациях, он ругается на недопустимость операции и завершается с ошибкой. В других, программа продолжает работать. В этом случае недопустимая операция возвращает что-то похожее на NaN, как в примере выше.

Каким образом JavaScript понимает что за тип данных перед ним? Достаточно просто. Любое значение где-то инициализируется и в зависимости от способа инициализации, становится понятно что перед нами. Например числа это просто числа без дополнительных символов, кроме разве точки для рациональных чисел. А вот строки всегда ограничены специальными символами (в JavaScript три разных варианта). Например такое значение '234' – строка, несмотря на то, что внутри нее записаны числа.

Подобные значения в программировании имеют специальное имя – литералы. Литерал – запись фиксированного значения в исходном коде программы. У каждого типа данных свой способ записи литерала. Но не все типы данных их имеют. Как вы узнаете потом, у дат нет литерального синтаксиса, поэтому они создаются совсем по другому (пример: const now = Date.now()).

JavaScript позволяет узнать тип данных с помощью оператора typeof:

typeof 3; // 'number'
typeof 'Game'; // 'string'

Типы данных Number, BigInt и String — это примитивные типы, они встроены в сам язык. Помимо них, есть еще несколько примитивных типов данных, которые мы изучим позже, например Boolean. Кроме того, в JavaScript встроены также и некоторые составные типы данных, например, массивы или объекты. Они рассматриваются на Хекслете.

(По-английски строки в программировании называются “strings”, а строчки текстовых файлов называются “lines”. Например, в коде выше есть одна строчка (lines), и нет никаких строк (strings). В русском иногда может быть путаница, поэтому во всех уроках мы будем говорить строка для обозначения типа данных «строка», и строчка для обозначения строчек (lines) в файлах).

Задание

Выведите на экран число -0.304.


Советы

Определения

  • Тип данных — множество данных в коде (разновидность информации). Тип определяет, что можно делать с элементами конкретного множества. Например, целые числа, рациональные числа, строки — это разные типы данных.

  • Примитивные типы данных — простые типы, встроенные в сам язык программирования.

  • Строка (string) — тип данных, описывающий набор символов (иными словами — текст); например, 'text' или "text".


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics
Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.