ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

JS Учебник

JS Старт JS Интро JS Установка JS Вывод JS Инструкции JS Синтаксис JS Комментарии JS Переменные JS Ключевое слово Let JS Ключевое слово Const JS Операторы JS Арифметические JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Строковые методы JS Строковый поиск JS Строковые шаблоны JS Числа JS Числовые методы JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Массив Const JS Даты JS Форматы дат JS Методы получения дат JS Методы установки дат JS Математические JS Рандомные JS Булевы JS Сравнения JS Условия JS Switch JS Цикл For JS Цикл For In JS Цикл For Of JS Цикл While JS Break и Continue JS Итерации JS Наборы JS Карты JS Typeof JS Преобразование типов JS Побитовые JS Регулярные выражения JS Ошибки JS Область действия JS Хостинг JS Use Strict JS Ключевое слово this JS Функция стрелки JS Классы JS JSON JS Отладка JS Гид по стилю JS Лучшие практики JS Распространенные ошибки JS Производительность JS Зарезервированные слова

JS Версии

JS Версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/Edge JS История

JS Объекты

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

JS Функции

Определения функций Параметры функции Обращение к функции Вызов функции Применение функции Закрытие функции

JS Классы

Введение Наследование класса Статические методы

JS Асинхронный

Обратные вызовы Асинхронный Промисы Async/Await

JS HTML DOM

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

JS Браузер BOM

JS Окно JS Скрин JS Локация JS История JS Навигатор JS Всплывающее оповещение JS Тайминг JS Куки

JS Веб API

Веб API Интро Веб-формы API Веб-история API Веб-хранилище API Веб-воркер API Веб-выборка API Веб-геолокация API

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 Stringify JSON Объекты JSON Массивы JSON Сервер JSON PHP JSON HTML JSON JSONP

JS и jQuery

jQuery Селекторы jQuery HTML jQuery CSS jQuery DOM

JS Примеры

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

JS Справочники

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

JavaScript. W3Schools на русском. Уроки для начинающих

JavaScript Объекты


В JavaScript объекты являются королями. Если вы разбираетесь в объектах, вы понимаете JavaScript.


В JavaScript почти "всё" является объектом.

  • Логические (булевы) значения могут быть объектами (если они определены с помощью ключевого слова new)
  • Числа могут быть объектами (если они определены с помощью ключевого слова new)
  • Строки могут быть объектами (если они определены с помощью ключевого слова new)
  • Даты всегда являются объектами
  • Математика - это всегда объекты
  • Регулярные выражения всегда являются объектами
  • Массивы всегда являются объектами
  • Функции всегда являются объектами
  • Объекты всегда являются объектами

Все значения JavaScript, кроме примитивов, являются объектами.


JavaScript Примитивы

Примитивное значение - это значение, не имеющее свойств или методов.

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

JavaScript определяет 5 типов примитивных типов данных:

  • string
  • number
  • boolean
  • null
  • undefined

Примитивные значения неизменяемы (они жестко запрограммированы и поэтому не могут быть изменены).

если x = 3.14, вы можете изменить значение x. Но вы не можете изменить значение 3.14.

ЗначениеТипКоментарий
"Hello"string"Hello" всегда "Hello"
3.14number3.14 всегда 3.14
truebooleantrue всегда true
falsebooleanfalse всегда false
nullnull (объект)null всегда null
undefinedundefinedundefined всегда undefined

Объекты - это переменные

Переменные JavaScript могут содержать одиночные значения:

Пример

let person = "John Doe";
Попробуйте сами »

JavaScript переменные также могут содержать множество значений.

Объекты тоже переменные. Но объекты могут содержать много значений.

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

Пример

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Попробуйте сами »

JavaScript объект - это коллекция именованных значений.

Обычно объекты объявляются с помощью ключевого слова const.

Пример

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Попробуйте сами »

Свойства объекта

Именованные значения в JavaScript объектах называются свойствами.

Свойство Значение
firstName John
lastName Doe
age 50
eyeColor blue

Объекты, записанные как пары имя-значение, похожи на:

  • Ассоциативные массивы в PHP
  • Словари на Python
  • Хеш-таблицы на C
  • Хеш-карты в Java
  • Хеши на Ruby и Perl

Методы объекта

Методы - это действия, которые можно выполнять с объектами.

Свойства объекта могут быть как примитивными значениями, так и другими объектами и функциями.

Метод объекта - это свойство объекта, содержащее определение функции.

Свойство Значение
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

JavaScript объекты - это контейнеры для именованных значений, называемых свойствами и методами.

Вы узнаете больше о методах в следующих главах.


Создание объекта JavaScript

С помощью JavaScript вы можете определять и создавать свои собственные объекты.

Существуют разные способы создания новых объектов:

  • Создайте единый объект, используя литерал объекта
  • Создайте единый объект с ключевым словом new.
  • Определите конструктор объекта, а затем создайте объекты сконструированного типа.
  • Создайте объект, используя Object.create().

Использование литерала объекта

Это самый простой способ создать объект JavaScript.

Используя литерал объекта, вы одновременно определяете и создаете объект в одном операторе.

Литерал объекта - это список пар имя: значение (например, age: 50) в фигурных скобках {}.

В следующем примере создается новый объект JavaScript с четырьмя свойствами:

Пример

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Попробуйте сами »

Пробелы и перенос строки не важны. Определение объекта может занимать несколько строк:

Пример

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};
Попробуйте сами »

В этом примере создается пустой объект JavaScript, а затем добавляются 4 свойства:

Пример

const person = {};
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Попробуйте сами »

Использование JavaScript ключевого слова new

В следующем примере создается новый объект JavaScript с помощью new Object(), а затем добавляются 4 свойства:

Пример

const person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Попробуйте сами »

Приведенные выше примеры делают то же самое.

Но нет необходимости использовать new Object().

Для удобства чтения, простоты и скорости выполнения используйте метод литерала объекта.


Объекты JavaScript изменяемы

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

Если человек является объектом, следующее утверждение не создаст копию человека:

const x = person;  // Не будет создавать копию человека

Объект x - не копия человека. Это это человек. И x, и person - один и тот же объект.

Любые изменения в x также изменят person, потому что x и person являются одним и тем же объектом.

Пример

const person = {
  firstName:"John",
  lastName:"Doe",
  age:50, eyeColor:"blue"
}

const x = person;
x.age = 10;      // Изменит как x.age, так и person.age
Попробуйте сами »