Понимание типов данных в JavaScript

Вступление

Data types используются для классификации одного конкретного типа данных в языках программирования. Например, число и строка символов - это разные типы данных, которые будут обрабатываться JavaScript по-разному.

Это важно, потому что конкретный тип данных, который вы используете, будет определять, какие значения вы можете назначить ему и что вы можете с ним сделать. То есть, чтобы иметь возможность выполнять операции с переменными в JavaScript, важно понимать тип данных любой данной переменной.

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

Динамический набор текста

JavaScript имеет динамические типы данных, что означает, что проверка типов выполняется во время выполнения, а не во время компиляции. data types в Python также динамически типизируются.

В динамически типизированных языках переменная с одним и тем же именем может использоваться для хранения разных типов данных.

Например, переменнаяt, определенная как переменная ключевым словомlet (обратите внимание, чтоlet сохраняет заданную переменную в ограниченном объеме), может быть назначена для хранения различных типов данных или можно инициализировать, но оставить неопределенным:

let t = 16;         // t is a number
let t = "Teresa";   // t is a string
let t = true;       // t is a Boolean
let t;              // t is undefined

Каждой из указанных выше переменныхt можно присвоить любой тип данных, доступный в JavaScript; их не нужно явно объявлять с типом данных перед их использованием.

чисел

JavaScript имеет только один тип чисел, отдельного обозначения для целых чисел и чисел с плавающей точкой нет. Из-за этого числа могут быть написаны в JavaScript с десятичными знаками или без них:

let num1 = 93;
let num2 = 93.00;

В обоих вышеупомянутых случаях тип данных является числом и является одинаковым независимо от того, имеет ли число десятичные точки или нет.

Научная экспоненциальная нотация может использоваться в JavaScript для сокращения очень больших или малых чисел, как в следующих примерах:

let num3 = 987e8;       // 98700000000
let num4 = 987e-8;      // 0.00000987

Числа в JavaScript считаются точными до 15 цифр. Это означает, что числа будут округлены после достижения 16-й цифры:

let num5 = 999999999999999;     // remains as 999999999999999
let num6 = 9999999999999999;    // rounded up to 10000000000000000

В дополнение к представлению чисел тип числа JavaScript также имеет три символических значения:

  • Infinity - числовое значение, представляющее числоpositive, которое стремится к бесконечности

  • -Infinity - числовое значение, представляющее числоnegative, которое стремится к бесконечности.

  • NaN - числовое значение, которое представляет собой нечисловое значение, обозначающееnotanumber

Infinity или-Infinity будут возвращены, если вы вычисляете число за пределами максимально возможного числа, доступного в JavaScript. Это также произойдет для значений, которые не определены, как при делении на ноль:

let num7 = 5 / 0;   // will return Infinity
let num8 = -5 / 0;  // will return -Infinity

С технической точки зрения,Infinity будет отображаться, когда число превышает число1.797693134862315E+308, которое представляет собой верхний предел в JavaScript.

Аналогично,-Infinity будет отображаться, когда число выходит за нижний предел-1.797693134862316E+308.

ЧислоInfinity также можно использовать в циклах:

while (num9 != Infinity) {
    // Code here will execute through num9 = Infinity
}

Для чисел, которые не являются допустимыми числами, будет отображатьсяNaN. Если вы попытаетесь выполнить математическую операцию с числом и нечисловым значением, будет возвращеноNaN. Это имеет место в следующем примере:

let x = 20 / "Shark";   // x will be NaN

Поскольку число20 не может быть разделено на строку"Shark", поскольку оно не может быть вычислено как число, возвращаемое значение для переменнойx -NaN.

Однако, если строка может быть оценена как числовое значение, математическое выражение может быть выполнено в JavaScript:

let y = 20 / "5";   // y will be 4

В приведенном выше примере, поскольку строка"5" может быть оценена как числовое значение в JavaScript, она рассматривается как таковая и будет работать с математическим оператором деления/.

При присвоении значенияNaN переменной, используемой в операции, это приведет к значениюNaN, даже если другой операнд является допустимым числом:

let a = NaN;
let b = 37;
let c = a + b;  // c will be NaN

В JavaScript есть только один тип данных числа. При работе с числами любой введенный вами номер будет интерпретироваться как тип данных для чисел; вам не нужно объявлять, какой тип данных вы вводите, потому что JavaScript типизирован динамически.

Струны

string - это последовательность из одного или нескольких символов (букв, цифр, символов). Строки полезны тем, что они представляют текстовые данные.

В JavaScript строки существуют либо в одинарных кавычках', либо в двойных кавычках", поэтому для создания строки заключите последовательность символов в кавычки:

let singleQuotes = 'This is a string in single quotes.';
let doubleQuotes = "This is a string in double quotes.";

Вы можете использовать одинарные или двойные кавычки, но в зависимости от того, что вы решите, вы должны оставаться последовательными в программе.

Программа «Привет, мир!» демонстрирует, как строку можно использовать в компьютерном программировании, поскольку символы, составляющие фразуHello, World! вalert() ниже, являются строкой.

hello.html







Когда мы запускаем код и нажимаем кнопкуClick me, мы получаем всплывающее окно со следующим выводом:

OutputHello, World!

Как и с другими типами данных, мы можем хранить строки в переменных:

let hw = "Hello, World!";

И отобразите строку вalert(), вызвав переменную:

hello.html

...

...
OutputHello, World!

Есть много операций, которые мы можем выполнять над строками в наших программах, чтобы манипулировать ими для достижения результатов, которые мы ищем. Строки важны для передачи информации пользователю, а также для передачи информации пользователю обратно в программу.

Булевы

Тип данныхBoolean может иметь одно из двух значений:true илиfalse. Логические значения используются для представления значений истинности, которые связаны с логической ветвью математики, которая предоставляет алгоритмы в информатике.

Всякий раз, когда вы видите тип данных Boolean, он начинается с заглавной буквыB, потому что он назван в честь математика Джорджа Буля.

Многие операции по математике дают нам ответы, которые оценивают как истинные или ложные:

  • лучше чем

    • 500> 100trueс

    • 1> 5falseс

  • меньше, чем

    • 200 <400trueс

    • 4 <2falseс

  • равный

    • 5 = 5trueс

    • 500 = 400falseс

Как и с другими типами данных, мы можем хранить логическое значение в переменной:

let myBool = 5 > 8; // false

Поскольку 5 не больше 8, переменнаяmyBool имеет значениеfalse.

По мере того, как вы будете писать больше программ на JavaScript, вы больше узнаете о том, как работают логические значения и как различные функции и операции, оцениваемые как истинные или ложные, могут изменить ход программы.

Массивы

array может содержать несколько значений в одной переменной. Это означает, что вы можете содержать список значений в массиве и выполнять их итерацию.

Каждый элемент или значение внутри массива называетсяelement. Вы можете ссылаться на элементы массива, используя индексный номер.

Подобно тому, как строки определяются как символы в кавычках, массивы определяются как имеющие значения в квадратных скобках[ ].

Например, массив строк выглядит так:

let fish = ["shark", "cuttlefish", "clownfish", "eel"];

Если мы вызовем переменнуюfish, мы получим следующий вывод:

["shark", "cuttlefish", "clownfish", "eel"]

Массивы являются очень гибким типом данных, потому что они изменчивы в том смысле, что в них могут быть добавлены, удалены и изменены значения элементов.

Объекты

Тип данных JavaScriptobject может содержать много значений в виде парname:value. Эти пары предоставляют полезный способ хранения и доступа к данным. Синтаксис литерала объекта состоит из пар имя: значение, разделенных двоеточиями с фигурными скобками с обеих сторон{ }.

Обычно используемый для хранения связанных данных, таких как информация, содержащаяся в идентификаторе, литерал объекта JavaScript выглядит следующим образом, с пробелами между свойствами:

let sammy = {firstName:"Sammy", lastName:"Shark", color:"blue", location:"ocean"};

В качестве альтернативы, и особенно для литералов объектов с большим числом пар имя: значение, мы можем записать этот тип данных в несколько строк с пробелами после каждого двоеточия:

let sammy = {
    firstName: "Sammy",
    lastName: "Shark",
    color: "blue",
    location: "Ocean"
};

Переменная объектаsammy в каждом из приведенных выше примеров имеет 4 свойства:firstName,lastName,color иlocation. Это все переданные значения, разделенные двоеточиями.

Работа с несколькими типами данных

Хотя каждая создаваемая вами программа будет содержать несколько типов данных, важно помнить, что вы, как правило, будете выполнять операции с одним и тем же типом данных. То есть вы будете выполнять математику с числами или нарезать строки.

Когда вы используете оператор, который работает с типами данных, например оператор+, который может складывать числа или объединять строки, вы можете получить неожиданные результаты.

Например, при использовании оператора+ с числами и строками вместе числа будут обрабатываться как строка (таким образом, они будут объединены), но порядок типов данных будет влиять на объединение.

Таким образом, если вы создадите переменную, которая выполняет следующую конкатенацию, JavaScript будет интерпретировать каждый элемент ниже как строку:

let o = "Ocean" + 5 + 3;

Если вы вызовете переменнуюo, вы получите следующее значение:

OutputOcean53

Однако, если вы ведете с числами, эти два числа будут добавлены до того, как они будут затем интерпретированы как строка, когда время выполнения программы достигнет"Ocean", поэтому возвращаемое значение будет суммой двух чисел, связанных со строкой:

let p = 5 + 3 + "Ocean";
Output8Ocean

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

Заключение

На этом этапе вы должны лучше понять некоторые из основных типов данных, доступных для использования в JavaScript.

Каждый из этих типов данных станет важным при разработке проектов программирования на языке JavaScript.