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

JS Учебник

JS Главная JS Введение JS Что? Где? Куда? JS Вывод JS Заявления JS Синтаксис JS Комментарии JS Переменные JS Операторы JS Арифметика JS Присваивания JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строк JS Числа JS Методы чисел JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Объекты дат JS Формат дат JS Метод получения дат JS Метод набора дат JS Математические... JS Случайные числа JS Булевы JS Сравнение... JS Заявления if...else JS Заявление switch JS Цикл for JS Цикл while JS Заявление break... JS Преобразование... JS Битовые... JS Регулярные выражения JS Ошибки JS Область JS Подъемный JS Строгий JS Ключевое слово this JS Ключевое слово let JS Константы JS Функция стрелки JS Классы JS Отладчик JS Руководство стиля JS Практика JS Распространенные ошибки JS Эффективность JS Зарезервированные слова JS Версии JS Версия ES5 JS Версия ES6 JS Версия 2016 JS Версия 2017 JS JSON

JS Формы

JS Формы JS Формы API

JS Объекты

Определение объекта Свойства объекта Методы объекта Отображение объекта Доступ к объекту Конструкторы объекта Прототипы объекта ES5 Методы объекта

JS Функции

Определение функции Параметры функции Вызов функции Вызвать функцию Применение функции Закрытие функции

JS Прочее

Классы введение Наследование класса Статические методы... JS Обратный вызов JS Асинхронный JS Обещания JS Асинхронный синтаксис

JS HTML DOM

DOM Введение DOM Методы DOM Документы DOM Элементы DOM HTML DOM CSS DOM Анимация DOM События DOM Прослушиватель событий DOM Навигация DOM Узлы DOM Коллекция DOM Список узлов

JS Браузера BOM

JS Window JS Экран JS Расположение JS История JS Навигатор JS Предупреждение JS Синхронизация JS Cookies

JS AJAX

AJAX Введение AJAX XMLHttp AJAX Запрос на сервер AJAX Ответ с сервера AJAX XML Файл AJAX PHP Файл AJAX ASP Файл AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON или XML JSON Типы данных JSON Парсинг JSON Строки JSON Объекты JSON Массивы JSON PHP JSON HTML JSON JSONP

JS Веб API

API - Введение API - История API - Хранилище API - Работник API - Извлечь файл API - Геолокации

JS или jQuery

jQuery HTML Селекторы jQuery HTML Элементы jQuery CSS Стили jQuery HTML DOM

JS Примеры

JS Примеры JS HTML DOM JS HTML Ввода JS HTML Объекты JS HTML События JS Браузер JS Редактор JS Упражнения JS Викторина JS Сертификат

JS Справочник

JavaScript Объекты HTML DOM Объекты


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 не определен
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;        // Написано без десятичных знаков
Попробуйте сами »

Сверхбольшие или сверхмалые числа можно записать в экспоненциальной нотации:

Пример

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: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.

Пример

var car;    // Значение не определено, тип не undefined
Попробуйте сами »

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

Пример

car = undefined;    // Значение не определено, тип не undefined
Попробуйте сами »

Пустые значения

Пустое значение тут ни при чем undefined.

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

Пример

var car = "";    // Значение "", typeof "строка"
Попробуйте сами »

Ноль

В 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 может вернуть один из этих примитивных типов:

  • string
  • number
  • boolean
  • undefined

Пример

typeof "Щипунов"           // Возвращает "string"
typeof 3.14                // Возвращает "number"
typeof true                // Возвращает "boolean"
typeof false               // Возвращает "boolean"
typeof x                   // Возвращает "undefined" (если x не имеет значения)
Попробуйте сами »

Комплексные данные

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

  • function
  • object

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 являются объектами.


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

Упражнение:

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

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

Старт