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