JavaScript Типы данных
JavaScript Типы данных
Переменные JavaScript могут содержать множество типов данных: числа, строки, объекты и многое другое:
var length = 16; // Число
var lastName = "Johnson"; // Строка
var
x = {firstName:"John", lastName:"Doe"}; // Объект
Концепция типов данных
В программировании типы данных являются важной концепцией.
Чтобы иметь возможность работать с переменными, важно знать о типе данных.
Без типов данных компьютер не может безопасно решить эту проблему:
var x = 16 + "Volvo";
Есть ли смысл добавлять "Volvo" к шестнадцати? Это приведёт к ошибке или покажет результат?
JavaScript будет обрабатывать приведенный выше пример как:
var x =
"16" + "Volvo";
При добавлении числа и строки JavaScript будет обрабатывать число как строку.
JavaScript определяет выражения слева направо. Разные последовательности могут давать разные результаты:
В первом примере JavaScript обрабатывает 16 и 4 как числа, пока не достигнет "Volvo".
Во втором примере, поскольку первый операнд является строкой, все операнды обрабатываются как строки.
JavaScript Типы являются динамическими
JavaScript имеет динамические типы. Это означает, что одна и та же переменная может использоваться для хранения разных типов данных (т.е. меняться при разных условиях):
Пример
var x; // Здесь x не определён
x = 5; // Здесь x является числом
x = "John"; // Здесь x является строкой
Попробуйте сами »
JavaScript Строки
Строка (или текстовая строка) представляет собой последовательность символов, например "John Doe".
Строки пишутся в кавычках. Вы можете использовать одинарные или двойные кавычки:
Пример
var
carName1 = "Volvo XC60"; // Использование двойных кавычек
var
carName2 = 'Volvo XC60'; // Использование одинарных кавычек
Попробуйте сами »
Вы можете использовать кавычки внутри строки, если они не соответствуют кавычкам, окружающим строку:
Пример
var answer1 = "Все нормально";
// Одинарная кавычка внутри двойных кавычек
var answer2 = 'Его зовут 'Johnny'';
// Одинарные кавычки внутри двойных кавычек
var answer3 = 'Его зовут 'Johnny'';
// Двойные кавычки внутри одинарных кавычек
Попробуйте сами »Вы узнаете больше о строках позже в этом учебнике.
JavaScript Числа
JavaScript имеет только один тип чисел.
Числа могут быть написаны из или без десятичных знаков:
Пример
var x1 = 34.00; // Написано с десятичными знаками
var x2 = 34; // Написано без десятичных знаков
Попробуйте сами »
Очень большие или очень маленькие числа могут быть написаны с научной (экспоненциальной) нотацией:
Вы узнаете больше о числах позже в этом учебнике.
JavaScript Булевы (логические) значения
Булевых может быть только два значения: true
или false
(истина или ложь).
Пример
var x = 5;
var y = 5;
var z = 6;
(x == y)
// Возвращает true
(x == z) // Возвращает false
Попробуйте сами »Булевы значения часто используются в условном тестировании.
Вы узнаете больше об условном тестировании позже в этом учебнике.
JavaScript Массивы (arrays)
JavaScript массивы пишутся в квадратных скобках.
Элементы массива разделяются запятыми.
Следующий код объявляет (создает) массив с именем cars
, содержащий три элемента (названия машин):
Индексы массива начинаются с нуля, что означает, что первый элемент равен [0], второй [1] и т.д.
Подробнее о массивах вы узнаете далее в этом учебнике.
JavaScript Объекты
JavaScript объекты пишутся с помощью фигурных скобок {}
.
Свойства объекта записываются в виде пар имя-значение, разделенных запятыми.
Объект (персона) в примере выше имеет 4 свойства: firstName, lastName, age и eyeColor.
Вы узнаете больше об объектах позже в этом учебнике.
Оператор typeof
Вы можете использовать оператор JavaScript typeof
чтобы найти тип JavaScript переменной.
Оператор typeof
возвращает тип переменной или выражения:
Пример
typeof "" // Возвращает
"string"
typeof "John" // Возвращает
"string"
typeof "John Doe" // Возвращает
"string"
Попробуйте сами »
Пример
typeof 0 // Возвращает
"number"
typeof 314 // Возвращает
"number"
typeof 3.14 // Возвращает
"number"
typeof (3) // Возвращает
"number"
typeof (3 + 4) // Возвращает
"number"
Попробуйте сами »
Undefined / неопределённое значение
В JavaScript переменная без значения имеет значение undefined
.
Тип также undefined
.
Любую переменную можно очистить, установив значение в undefined
.
Тип также будет undefined
.
Пустые значения
Пустое значение не имеет ничего общего с undefined
.
Пустая строка имеет допустимое значение и тип.
Null / Ноль
В JavaScript null
- это "ничто". Предполагается, что это нечто, чего не существует.
К сожалению, в JavaScript, тип данных null
является объектом.
Можно считать ошибкой в JavaScript, когда typeof null
является объектом. Он должен быть null
.
Объект можно очистить, установив его в null
:
Пример
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null; // Теперь значение равно null, но тип по-прежнему является object
Попробуйте сами »
Также можно очистить объект, установив его undefined
:
Пример
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined; // Теперь и значение, и тип не определены
Попробуйте сами »
Различия между Undefined и Null
undefined
и null
равноценны, но различаются по типу:
typeof undefined
// undefined
typeof null
// object
null === undefined
// false
null == undefined
// true
Попробуйте сами »
Примитивные данные
Примитивное значение данных - это одно простое значение данных без дополнительных свойств и методов.
Оператор typeof
может вернуть один из этих примитивных типов:
string
number
boolean
undefined
Пример
typeof "John" // Возвращает "string"
typeof 3.14 // Возвращает "number"
typeof true // Возвращает "boolean"
typeof false // Возвращает
"boolean"
typeof x
// Возвращает "undefined" (если х не имеет значения)
Попробуйте сами »
Комплексные данные
Оператор typeof
может вернуть один из двух сложных типов:
function
object
Оператор typeof
возвращает "object" для объектов, массивов и null.
Оператор typeof
не возвращает "object" для функций.
Пример
typeof {name:'John', age:34} // Возвращает "object"
typeof [1,2,3,4]
// Возвращает "object" (не "массив", смотрите примечание выше)
typeof null // Возвращает "object"
typeof function myFunc(){} // Возвращает "function"
Попробуйте сами »
Оператор typeof
возвращает "object
" для массивов, потому что в JavaScript массивы являются объектами.