Введение
Типы данных используются для классификации определенного типа данных в языках программирования. Например, число и строка символов – это разные типы данных, которые будут обрабатываться по-разному в JavaScript.
Это важно, потому что конкретный тип данных, который вы используете, определит, какие значения вы можете ему присвоить и что вы можете с ним делать. Это означает, что для выполнения операций с переменными в JavaScript важно понимать тип данных любой заданной переменной.
В этом учебном пособии мы рассмотрим, как работают типы данных в JavaScript, а также важные типы данных, присущие этому языку. Это не исчерпывающее исследование типов данных, но поможет вам ознакомиться с доступными вариантами в JavaScript.
Динамическая типизация
JavaScript имеет динамические типы данных, что означает, что проверка типов выполняется во время выполнения, а не во время компиляции. Типы данных Python также являются динамическими.
С динамически типизированными языками переменная с тем же именем может использоваться для хранения разных типов данных.
Например, переменная t
, определенная как переменная ключевым словом let
(обратите внимание, что let
ограничивает данную переменную областью видимости), может быть назначена для хранения различных типов данных или инициализирована, но оставлена неопределенной:
Каждая из переменных t
выше может быть установлена на любой доступный в JavaScript тип данных; их не нужно явно объявлять с указанием типа данных до использования.
Числа
В JavaScript есть только один тип чисел, нет отдельного обозначения для целых и чисел с плавающей запятой. Из-за этого числа в JavaScript можно записывать с десятичной точкой или без нее:
В обоих случаях выше тип данных – число и остается таким же независимо от наличия или отсутствия десятичных знаков.
В JavaScript можно использовать научную экспоненциальную запись для сокращения очень больших или очень маленьких чисел, как в следующих примерах:
Числа в JavaScript считаются точными до 15 знаков. Это означает, что числа будут округлены после достижения 16-го знака:
В дополнение к представлению чисел, у числового типа данных JavaScript также есть три символических значения:
Infinity
— числовое значение, представляющее положительное число, стремящееся к бесконечности-Infinity
— числовое значение, представляющее отрицательное число, стремящееся к бесконечностиNaN
— числовое значение, представляющее не число, означая не число
Infinity
или -Infinity
будут возвращены, если вы вычислите число вне максимально возможного числа в JavaScript. То же произойдет для значений, которые неопределены, например, при делении на ноль:
Технически Infinity
будет отображаться, когда число превышает число 1.797693134862315E+308
, что представляет верхний предел в JavaScript.
Аналогично, -Infinity
будет отображаться, когда число выходит за нижний предел -1.797693134862316E+308
.
Число Infinity
также может использоваться в циклах:
Для чисел, которые не являются допустимыми числами, будет отображаться NaN
. Если вы попытаетесь выполнить математическую операцию с числом и нечисловым значением, будет возвращено NaN
. Это происходит в следующем примере:
Поскольку число 20
не может быть разделено на строку "Shark"
, потому что ее нельзя оценить как число, возвращаемое значение для переменной x
будет NaN
.
Однако, если строку можно оценить как числовое значение, математическое выражение можно выполнить в JavaScript:
В приведенном выше примере, поскольку строку "5"
можно оценить как числовое значение в JavaScript, она обрабатывается как таковая и будет работать с математическим оператором для деления, /
.
При присваивании значения NaN
переменной, используемой в операции, результатом будет значение NaN
, даже когда другой операнд является допустимым числом:
В JavaScript существует только один тип данных для чисел. При работе с числами любое введенное число будет интерпретироваться как тип данных для чисел; не требуется объявлять, какой тип данных вы вводите, потому что JavaScript является динамически типизированным.
Строки
A string is a sequence of one or more characters (letters, numbers, symbols). Strings are useful in that they represent textual data.
В JavaScript строки могут находиться либо в одинарных кавычках '
, либо в двойных кавычках "
, так что для создания строки заключите последовательность символов в кавычки:
Вы можете выбрать использовать одинарные или двойные кавычки, но какие бы вы ни выбрали, остаются последовательными в рамках программы.
Программа “Привет, мир!” демонстрирует, как строка может быть использована в компьютерном программировании, поскольку символы, составляющие фразу Привет, мир!
в alert()
ниже, являются строкой.
Когда мы запускаем код и нажимаем кнопку Нажми меня
, мы получим всплывающее окно со следующим выводом:
OutputHello, World!
Как и с другими типами данных, мы можем хранить строки в переменных:
И отображать строку в alert()
, вызывая переменную:
OutputHello, World!
Есть множество операций, которые мы можем выполнять со строками в наших программах, чтобы манипулировать ими и достигать желаемых результатов. Строки важны для передачи информации пользователю и для обратной передачи информации пользователем программе.
Булевы
Тип данных Boolean может иметь одно из двух значений: true или false. Булевы значения используются для представления истинных значений, связанных с логическим ветвлением математики, которая информирует алгоритмы в компьютерных науках.
Многие операции в математике дают нам ответы, которые вычисляются как true или false:
- больше чем
- 500 > 100
true
- 1 > 5
false
- 500 > 100
- меньше чем
- 200 < 400
true
- 4 < 2
false
- 200 < 400
- равно
- 5 = 5
true
- 500 = 400
false
- 5 = 5
Как и с другими типами данных, мы можем сохранить булево значение в переменной:
Поскольку 5 не больше 8, переменная myBool
имеет значение false
.
По мере того как вы будете писать больше программ на JavaScript, вы станете более знакомы с тем, как работают булевы значения и как различные функции и операции, вычисляющие true или false, могут изменить ход программы.
Массивы
Массив может содержать несколько значений в одной переменной. Это означает, что вы можете содержать список значений внутри массива и перебирать их.
Каждый элемент или значение, находящееся внутри массива, называется элементом. Вы можете обращаться к элементам массива, используя номер индекса.
Точно так же, как строки определяются как символы между кавычками, массивы определяются наличием значений между квадратными скобками [ ]
.
Массив строк выглядит, например, так:
Если мы назовем переменную fish, мы получим следующий вывод:
Массивы являются очень гибким типом данных, потому что они изменяемы в том смысле, что в них можно добавлять, удалять и изменять значения элементов.
Объекты
Тип данных объект в JavaScript может содержать множество значений в виде пар имя:значение. Эти пары предоставляют удобный способ хранения и доступа к данным. Синтаксис литерала объекта состоит из пар имя:значение, разделенных двоеточием, с фигурными скобками с обеих сторон { }
.
Обычно используется для хранения связанных данных, таких как информация, содержащаяся в идентификаторе, литерал объекта JavaScript выглядит так, с пробелами между свойствами:
Альтернативно, особенно для объектных литералов с большим количеством пар имя:значение, мы можем записывать этот тип данных на нескольких строках, с пробелом после каждого двоеточия:
Объектная переменная sammy
в каждом из приведенных выше примеров имеет 4 свойства: firstName
, lastName
, color
и location
. Каждое из них передается значениями, разделенными двоеточием.
Работа с несколькими типами данных
Хотя каждая программа, которую вы создаете, будет содержать несколько типов данных, важно помнить, что обычно вы будете выполнять операции в пределах одного типа данных. То есть вы будете выполнять математические операции над числами или выполнять срезы строк.
Когда вы используете оператор, который работает с разными типами данных, например оператор +
, который может складывать числа или объединять строки, вы можете получить неожиданные результаты.
Например, при использовании оператора +
с числами и строками вместе, числа будут рассматриваться как строка (следовательно, они будут объединены), но порядок типов данных будет влиять на объединение.
Так, если вы создадите переменную, которая выполняет следующее объединение, JavaScript интерпретирует каждый элемент ниже как строку:
Если вы вызовете переменную o
, вы получите следующее возвращенное значение:
OutputOcean53
Однако, если вы начнете с чисел, то два числа будут сложены до того момента, как они будут интерпретированы как строка, когда программа достигнет "Ocean"
, поэтому возвращаемым значением будет сумма двух чисел, объединенная со строкой:
Output8Ocean
Из-за этих неожиданных результатов вы, вероятно, будете выполнять операции и методы в пределах одного типа данных, а не между ними. JavaScript, однако, не возвращает ошибок при смешивании типов данных, как это делают некоторые другие языки программирования.
Вывод
На этом этапе у вас должно быть лучшее понимание некоторых основных типов данных, доступных для использования в JavaScript.
Каждый из этих типов данных станет важным при разработке программных проектов на языке JavaScript.
Source:
https://www.digitalocean.com/community/tutorials/understanding-data-types-in-javascript