Типы данных в JavaScript
Типы данных помогают построить классификацию данных в языках программирования. Например, число и строка символов представляют собой разные типы данных, которые JavaScript будет обрабатывать по-разному.
Это важно, потому что каждый тип данных может принимать определенные значения и выполнять определенные действия. Чтобы иметь возможность выполнять операции с переменными в JavaScript, важно понимать тип данных каждой заданной переменной.
Данный мануал ознакомит вас с типами данных JavaScript.
Примечание: Информация в руководстве не является исчерпывающей, но здесь вы сможете ознакомиться с основными опциями JavaScript.
Динамическая типизация
JavaScript является динамическим языком. Это значит, что проверка типа данных осуществляется во время запуска, а не компиляции.
Читайте также: Типы данных Python
В динамических языках одноименные переменные можно использовать для хранения разных типов данных.
Например, переменная t, определяемая ключевым словом var, может хранить разные типы данных; также ее можно инициализировать, но оставить неопределенной:
var t = 16; // t is a number
var t = "Teresa"; // t is a string
var t = true; // t is a Boolean
var t; // t is undefined
Все переменные t содержат разные типы данных JavaScript. В JavaScript не нужно явно указывать тип данных переменной до ее использования.
Числа
JavaScript имеет единый числовой тип данных, не разделяя целые числа и числа с плавающей запятой. Потому числа в JavaScript можно писать с десятичными знаками или без них:
var num1 = 93;
var num2 = 93.00;
В вышеприведенном примере обе переменные содержат числа, вне зависимости от того, есть в нем запятая или нет.
Экспоненциальная нотация в JavaScript позволяет сокращать очень большие или маленькие числа:
var num3 = 987e8; // 98700000000
var num4 = 987e-8; // 0.00000987
В JavaScript числа считаются точными до 15 цифр. Это означает, что после достижения 16-й цифры числа будут округлены:
var num5 = 999999999999999; // remains as 999999999999999
var num6 = 9999999999999999; // rounded up to 10000000000000000
Также числа в JavaScript имеют три символических значения:
Infinity – числовое значение, которое представляет собой положительное число, приближающееся к бесконечности.
-Infinity – числовое значение, которое представляет собой отрицательное число, приближающееся к бесконечности.
NaN – Not-а-Number, особое состояние числа с плавающей запятой.
Infinity и -Infinity возвращаются при подсчете числа за пределами максимально возможного числа, доступного в JavaScript. Они также появляются при подсчете неопределенных значений, например, при делении на ноль:
var num7 = 5 / 0; // Infinity
var num8 = -5 / 0; // -Infinity
Технически Infinity возвращается, если число превышает 1.797693134862315E+308, это верхний предел в JavaScript.
Аналогично, -Infinity будет отображаться, когда число выходит за нижний предел, -1.797693134862316E+308.
Число Infinity также можно использовать в циклах:
while (num9 != Infinity) {
// Code here will execute through num9 = Infinity
}
Для неопределенных чисел выводится NaN. Если вы попытаетесь выполнить математическую операцию над числом и нечисловым значением, вы получите NaN. Например:
var x = 20 / "Shark"; // x will be NaN
Поскольку 20 нельзя разделить на строку Shark, значение переменной х будет NaN.
Однако если строку можно оценить как числовое значение, JavaScript выполнит математическое выражение:
var y = 20 / "5"; // y will be 4
Поскольку JavaScript может рассмотреть 5 как числовое значение, 5 будет работать с математическим оператором деления.
Если одной переменной в выражении присвоено значение NaN, в результате будет NaN, даже если второй операнд является числом.
var a = NaN;
var b = 37;
var c = a + b; // c will be NaN
Итак, в JavaScript существует только один числовой тип данных. В JavaScript не нужно разделять числа на целые и числа с плавающей запятой, поскольку JavaScript является динамическим языком.
Строки
Строка – это последовательность из одного или нескольких символов (букв, цифр и других символов). Строки представляют собой текстовые данные.
В JavaScript строки бывают как в одиночных, так и в двойных кавычках. Чтобы создать строку, нужно заключить последовательность символов в кавычки:
var singleQuotes = 'This is a string in single quotes.';
var doubleQuotes = "This is a string in double quotes.";
Вы можете использовать одинарные или двойные кавычки, но в коде одной программы нужно последовательно использовать один вид кавычек.
Программа «Hello, World!» демонстрирует, как используются строки в компьютерном программировании. По сути, в данном примере строка – это последовательность символов, которая составляет фразу «Hello, World!» в alert().
<!DOCTYPE HTML>
<html>
<head>
<script>
function helloFunction() {
alert("Hello, World!");
}
</script>
</head>
<body>
<p><button onclick="helloFunction()">Click me</button></p>
</body>
</html>
Запустив код и нажав кнопку Click me, вы увидите всплывающее окно с текстом:
Hello, World!
Как и другие типы данных, строки можно хранить в переменных.
var hw = "Hello, World!";
Затем можно отобразить строку, вызвав переменную:
...
<script>
var hw = "Hello, World!";
function helloFunction() {
alert(hw);
}
</script>
...
Hello, World!
Строки позволяют передавать информацию пользователю и обратно в программу.
Логический тип данных
Логический (или Булевый) тип данных состоит из двух значений – true и false.
Этот тип используется для представления значений истинности, связанных с логикой и алгоритмах в информатике.
Примечание: Этот тип данных назван в честь математика Джорджа Буля.
Многие операции в математике дают результаты, которые можно оценить как истинные или ложные:
Больше чем:
- 500 > 100 true
- 1 > 5 false
Меньше чем:
- 200 < 400 true
- 4 < 2 false
Равно:
- 5 = 5 true
- 500 = 400 false
Как и другие типы, логический тип данных можно хранить в переменных.
var myBool = 5 > 8; // false
Поскольку 5 не больше 8, переменная myBool будет иметь значение false.
Разрабатывая код в JavaScript, вы познакомитесь с тем, как работают логические данные и как различные функции и операции, оценивающие истинность, могут изменить ход программы.
Массивы
Массив может содержать несколько значений в пределах одной переменной. Это означает, что вы можете сохранить список значений внутри массива и итерировать их.
Каждое значение внутри массива называется элементом. Вы можете обратиться к элементам массива с помощью индекса.
Массивы определяются квадратными скобками [ ].
Массив строк выглядит так:
var fish = ["shark", "cuttlefish", "clownfish", "eel"];
Вызывая переменную fish, вы получите результат:
["shark", "cuttlefish", "clownfish", "eel"]
Массивы – очень гибкий тип данных, поскольку они изменяемы: вы можете добавлять, удалять и изменять значения элементов.
Объекты
Объект в JavaScript состоит из пар «ключ: значение».
Синтаксис объекта состоит из пар «ключ: значение». Объект выделяется фигурными скобками с обеих сторон ({}).
Пары в объекте разделяются пробелами:
var sammy = {firstName:"Wally", lastName:"Shark", color:"blue", location:"ocean"};
Также объект можно записать в несколько строк (особенно это применимо к большим объектам).
var wally = {
firstName: "Wally",
lastName: "Shark",
color: "blue",
location: "Ocean"
};
Работа с несколькими типами данных
Каждая создаваемая вами программа наверняка будет содержать несколько типов данных, однако операции обычно выполняются для одного типа данных. математические вычисления применяются к числам, а нарезка – к строкам.
Используя операторы, которые работают со всеми типами данных (например, оператор + может складывать числа или выполнять конкатенацию строк), вы можете получить неожиданный результат.
Если вы создадите переменную для конкатенации, JavaScript интерпретирует каждый элемент как строку.
var o = "Ocean" + 5 + 3;
Вызвав переменную о, вы получите такой результат:
Ocean53
Однако если в строке сначала будут идти числа, а затем строка, оператор + выполнит сложение, а затем конкатенацию:
var p = 5 + 3 + "Ocean";
8Ocean
Из-за непредсказуемости результатов выполнять операции и методы удобнее в одном типе данных. Однако JavaScript не возвращает ошибок при смешивании типов данных, как это делают некоторые другие языки программирования.
Заключение
Теперь вы знакомы с типами данных JavaScript. Каждый из перечисленных здесь типов важен при написании программ на языке JavaScript.
Tags: Javascript