САЙТ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ НА РУССКОМ ЯЗЫКЕ

JavaScript Типы данных



JavaScript типы данных

JavaScript переменные могут содержать несколько типов данных: числа, строки, объекты и т.д.:

var length = 16;                                 // Числа
var lastName = "Андрей"                          // Строки
var x = {firstName:"Андрей", lastName:"Щипунов"};// Объекты

Концепция типов данных

При программировании типы данных являются важной концепцией.

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

Без типов данных компьютер не может безопасно решать эту проблему:

var x = 16 + "Вольво";

Есть ли смысл, добавлять число шестнадцать до "Вольво"? Будет выдавать ошибку или получит результат?

JavaScript будет рассматривать приведенный пример выше, так же как:

var x = "16" + "Вольво";

При добавлении в JavaScript числа к строке, число, будет рассматриваться, как строка.

Пример

var x = 16 + "Вольво";
Редактор кода »

Пример

var x = "Вольво" + 16;
Редактор кода »

JavaScript вычисляет выражения слева направо. Разные последовательности, могут привести к различным результатам:

JavaScript:

var x = 16 + 4 + "Вольво";

Результат:

20Вольво
Редактор кода »

JavaScript:

var x = "Вольво" + 16 + 4;

Результат:

Вольво164
Редактор кода »

В первом примере JavaScript рассматривает 16 и 4 как числа, пока не достигнет "Вольво".

Во втором примере, поскольку первый операнд является строкой, все операнды обрабатываются как строки.


JavaScript типы являются динамическими.

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

Пример

var x;              // x не определен
var x = 5;          // x - число
var x = "Андрей";   // x - строка
Редактор кода »

JavaScript строки

Строка (или текстовая строка) представляет собой серию символов, таких как "Андрей Щипунов".

Строки пишутся в кавычках. Можно использовать одиночные или двойные кавычки:

Пример

var carName = "Вольво XC60";   // Использование двойных кавычек
var carName = 'Вольво XC60';   // Использование одиночных кавычек
Редактор кода »

Вы можете использовать кавычки внутри строки, если они не соответствуют кавычкам вокруг строк:

Пример

var answer = "Его зовут 'Андрей'";    // Одинарные кавычки внутри двойных кавычек
var answer = 'Его зовут "Андрей"';    // Двойные кавычки внутри одинарных кавычек
Редактор кода »

Подробнее о строках вы узнаете далее в этом учебнике.


JavaScript числа

JavaScript имеет только один тип чисел.

Числа могут быть записаны с десятичными знаками или без них:

Пример

var x1 = 34.00;     // Написано с десятичными знаками
var x2 = 34;        // Написано без десятичных знаков
Редактор кода »

Очень большие или очень маленькие числа, можно записать в научной (экспоненциальной) нотации:

Пример

var y = 123e5;      // будет 12300000
var z = 123e-5;     // будет 0.00123
Редактор кода »

Подробнее о числах вы узнаете далее в этом учебнике.


JavaScript логические значения

Булевы могут иметь только два значения: true или false.

Пример

var x = 5;
var y = 5;
var z = 6;
(x == y)       // Возвращает true
(x == z)       // Возвращает false
Редактор кода »

Булевы часто используются при условном тестировании.

Более подробно об условном тестировании вы узнаете далее в этом учебнике.


JavaScript массивы

JavaScript массивы записываются в квадратные скобки.

Элементы массива разделяются запятыми.

Следующий код объявляет (создает) массив cars, содержащий три элемента (названия автомобилей):

Пример

var cars = ["Сааб", "Вольво", "БМВ"];
Редактор кода »

Индексы массивов начинаются с нуля, что означает, что первый элемент [0], второй - [1], и так далее.

Подробнее о массивах вы узнаете далее в этом учебнике.


JavaScript объекты

JavaScript объекты записываются в фигурных скобках.

Свойства объекта записываются в виде пары имя:значение, разделенные запятыми.

Пример

var person = {firstName:"Андрей", lastName:"Щипунов", age:49, eyeColor:"зеленый"};
Редактор кода »

Объект person в примере выше имеет 4 свойства: firstName, lastName, age, и eyeColor.

Более подробно об объектах вы узнаете далее в этом учебнике.


Оператор вызова

Вы можете использовать JavaScript оператор typeof, вызвать тип переменной JavaScript.

Оператор typeof возвращает тип переменной или выражения:

Пример

typeof ""                  // Возвращает "строку"
typeof "Андрей"              // Возвращает "строку"
typeof "Андрей Щипунов"          // Возвращает "строку"
Редактор кода »

Пример

typeof 0                   // Возвращает "число"
typeof 314                 // Возвращает "число"
typeof 3.14                // Возвращает "число"
typeof (3)                 // Возвращает "число"
typeof (3 + 4)             // Возвращает "число"
Редактор кода »

Значение undefined

В JavaScript переменная без значения, имеет значение undefined - неопределенно. Оператор typeof также, имеет значение undefined.

Пример

var car;                // Значение неопределенно, тип неопределен
Редактор кода »

Любая переменная может быть очищена, установив значение undefined. Тип также будет неопределен.

Пример

car = undefined;        // Значение неопределенно, тип неопределен
Редактор кода »

Значение пустое

Пустое значение не имеет ничего общего с неопределенным.

Пустая строка имеет как допустимое значение, так и тип.

Пример

var car = "";              // Значение "", typeof, являться "строкой"
Редактор кода »

Тип данных null

В JavaScript тип данных null - нуль, являться "ничто". Это должно быть то, чего не существует.

Но, в JavaScript тип данных null является объектом.

Вы можете считать это ошибкой в JavaScript, что typeof null, является объектом. Он должен быть null.

Можно опустошить объект, установив для него значение null:

Пример

var person = {firstName:"Андрей", lastName:"Щипунов", age:49, eyeColor:"зеленый"};
person = null;        // Теперь значение является null, но тип по-прежнему является объектом
Редактор кода »

Также можно очистить объект, установив для него значение undefined:

Пример

var person = {firstName:"Андрей", lastName:"Щипунов", age:49, eyeColor:"зеленый"};
person = undefined;   // Теперь и значение и тип: неопределенны
Редактор кода »

Разница между undefined и null

undefined и null равны по значению, но отличаются по типу:

typeof undefined           // неопределенно
typeof null                // объект

null === undefined         // лож
null == undefined          // правда
Редактор кода »

Примитивные данные

Примитивное значение данных - это единственное простое значение данных без дополнительных свойств и методов.

Оператор typeof может возвратить один из этих примитивных типов:

  • строка
  • число
  • логическое значение
  • неопределенно

Пример

typeof "Андрей"            // Возвращает "строку"
typeof 3.14                // Возвращает "число"
typeof true                // Возвращает "логическое значение"
typeof false               // Возвращает "логическое значение"
typeof x                   // Возвращает "неопределенно" (если x имеет значение)
Редактор кода »

Сложные данные

Оператор typeof, может возвратить один из двух сложных типов:

  • функцию
  • объект

Оператор typeof возвращает объект для обоих объектов, массивов и нуля

Оператор typeof не возвращает объект для функции.

Пример

typeof {name:'Андрей', age:49}// Возвращает "объект"
typeof [1,2,3,4]              // Возвращает "объект" (не "массив", см. Примечание ниже)
typeof null                   // Возвращает "объект"
typeof function myFunc(){}    // Возвращает "функцию"
Редактор кода »

Оператор typeof возвратит "объект" для массива, потому что в JavaScript массивы являются объектами.


Проверьте себя с помощью упражнений!

Упражнение:

Используйте комментарии для описания правильного типа данных следующих переменных:

var length = 16;                                      // 
var lastName = "Татьяна";                             // 
var x = {firstName:"Андрей", lastName:"Щипуновы"};    // 

Начните упражнения