1. определение и синтаксис
  2. JSON
  3. разрушение и распространение

определение и синтаксис

В JavaScript объект — это набор свойств, где каждое свойство представляет собой пару ключ-значение. Свойства могут быть переменными, функциями или даже другими объектами. Мы можем получить доступ к свойствам, используя запись через точку или скобки.

const cat = {
  "name": "Whiskers",
  "legs": 4,
  "tails": 1,
  "enemies": ["Water", "Dogs"]
};

console.log(cat.name); // Output: whiskers
console.log(cat['legs']); // Output: 4
console.log(cat.enemies[1]); // Output: Dogs

// to add new property
// objname.propname = "value"
cat.color = "gray";  

// change value of some prop
cat.name = "midnight";

// to delete prop
// delete objname.propname;
delete cat.tails;

//now our object looks like this
/*
const cat = {
  "name": "midnight",
  "legs": 4,
  "color": "gray",
  "enemies": ["Water", "Dogs"]
};
*/

JSON

JSON, сокращение от JavaScript Object Notation, — это простой и легкий способ хранения и обмена данными. Он разработан таким образом, чтобы людям и компьютерам было легко читать и писать. Многие языки программирования, такие как C++, Java, JavaScript, Perl и Python, используют аналогичные соглашения для работы с JSON.

Люди часто используют JSON для обмена данными между сервером и веб-приложением, потому что это эффективно и не занимает слишком много места. Данные JSON состоят из двух основных частей: литералы объектов и массивы. Литералы объектов похожи на контейнеры, которые содержат пары ключей и значений, а массивы похожи на списки значений. Оба они разделяются запятыми и заключаются в фигурные скобки {} или квадратные скобки [].

{
  "title": "The Great Gatsby",
  "author": {
    "firstName": "F. Scott",
    "lastName": "Fitzgerald"
  },
  "publishedYear": 1925,
  "isAvailable": true,
  "characters": [
    {"name": "Jay Gatsby", "age": 32, "occupation": "bootlegger"},
    {"name": "Daisy Buchanan", "age": 23, "occupation": "socialite"},
    {"name": "Tom Buchanan", "age": 30, "occupation": "businessman"}
  ]
}

В этом примере у нас есть объект, представляющий книгу «Великий Гэтсби». У него есть такие свойства, как «название», «автор», «год публикации», «доступно» и «символы». Свойство «автор» само по себе является объектом со свойствами «имя» и «фамилия». Свойство «персонажи» представляет собой массив объектов, каждый из которых представляет персонажа книги.

В прошлом некоторые авторитетные веб-сайты, такие как Google, добавляли символы, такие как «&&&START&&&», к своим частным ответам JSON, чтобы предотвратить перехват JSON (современные браузеры решили эту проблему по своей сути).

разрушение и распространение

В JavaScript есть несколько операторов, которые можно использовать с объектами, мы уже говорили об операторе dor (.) и операторе квадратных скобок ([]), так что теперь давайте рассмотрим операторы деструктурирования и расширения.

например:

const person = {
  firstName: 'John',
  lastName: 'Doe',
  age: 30,
  city: 'New York'
};

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

const { firstName, lastName, age, city } = person;

Это создает четыре переменные (firstName, lastName, age и city) и присваивает им соответствующие значения из объекта person. Теперь вы можете использовать эти переменные непосредственно в своем коде, не обращаясь каждый раз к объекту.

Вы также можете использовать деструктурирование с массивами. Например, рассмотрим следующий массив:

const numbers = [1, 2, 3, 4, 5];

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

const [first, second, ...rest] = numbers;

Это создает три переменные (first, second и rest) и присваивает им соответствующие значения из массива numbers. Синтаксис ...rest используется для захвата оставшихся значений в массиве и присвоения их переменной rest.

Деструктуризация — это мощная функция JavaScript, которая может сделать ваш код более кратким и читабельным. Он широко используется в современных JavaScript-фреймворках и библиотеках.

оператор расширения

Оператор расширения, представленный тремя последовательными точками ..., позволяет расширять итерируемый объект (например, массив или строку) в том месте, где ожидается ноль или более аргументов или элементов.

давайте посмотрим на несколько примеров того, как можно использовать оператор распространения:

//To combine two or more arrays:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1, ...arr2]; // [1, 2, 3, 4, 5, 6];

//To make a copy of an array:
const originalArray = [1, 2, 3];
const newArray = [...originalArray]; // [1, 2, 3]

//To pass an array as arguments to a function:
function myFunction(a, b, c) {
  return a + b + c;
}

const myArray = [1, 2, 3];
const result = myFunction(...myArray); // 6

вы также можете использовать оператор распространения с объектами в JavaScript. Оператор распространения можно использовать для создания нового объекта путем объединения свойств одного или нескольких объектов. Вот пример:

const obj1 = { x: 1, y: 2 };
const obj2 = { z: 3 };

const newObj = { ...obj1, ...obj2 };

console.log(newObj); // { x: 1, y: 2, z: 3 }

Пока это все, но есть много важных вещей, связанных с объектами, которые вам нужно знать. Мы поговорим об этих темах в следующей главе, в которой будут рассмотрены более сложные аспекты объектов.