Objects and obj methods Flashcards

1
Q

Object

A

Объект (object) — это особый тип данных, он единственный не является примитивом в JS. Каждое свойство состоит из ключа и значения.
Ключ может быть строкой или символом, а значение может быть любым.
Чаще всего объекты создают с помощью литеральной записи.

{ [ nameValuePair1[, nameValuePair2[, …nameValuePairN] ] ] }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

new Object()

A

Вызов в качестве конструктора:
new Object([value])

Конструктор Object создаёт объект-обёртку для передаваемого значения.

Если значением является null или undefined, создаёт и возвращает пустой объект, в противном случае возвращает объект такого типа, который соответствует переданному значению. Если значение уже является объектом, конструктор вернёт это значение.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Values in object

A

const book = new Object({ title: ‘Война и мир’, author: ‘Лев Толстой’ })

Чтение свойств с помощью точки:
console.log(book.title) // «Война и мир»

Альтернативно для чтения можно использовать квадратные скобки:
console.log(book[‘title’])

Для добавления и изменения свойств используется одинаковый синтаксис.
Нужно обратиться к свойству и присвоить в него значение с помощью стандартного оператора присваивания =.
Если свойство не существует, оно будет создано:
const book = {title: ‘Капитанская дочка’}
book.author = ‘А.С.Пушкин’ // добавляем новое свойство
book.title = ‘Сказка о царе Салтане’ // изменяем существующее
console.log(book) // { title: ‘Сказка о царе Салтане’, author: ‘А.С.Пушкин’}

delete book[‘author’]
delete book.title
Чаще всего свойства не удаляют, а сбрасывают значение, устанавливая undefined или подходящее по смыслу:
book.title = undefined
book[‘author’] = undefined

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

in operator for objects

A

Для проверки, есть ли свойство у объекта, используйте оператор in:
const user = {
firstName: ‘Марина’,
username: ‘zloyDuh’
}

console.log(‘firstName’ in user)// true
console.log(‘age’ in user)// false

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Object.keys()

A

Преобразование в массив ключей объекта:
Object.keys(user) = [“name”, “age”]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Object.values()

A

Преобразование в массив значений объекта:
Object.values(user) = [“John”, 30]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Object.entries()

A

Преобразование в массив пар ключ: значение объекта:
Object.entries(user) = [ [“name”,”John”], [“age”,30] ]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Object.fromEntries()

A

Преобразование массива ключей и значений обратно в объект

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Object.create()

A

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

Object.create(proto[, propertiesObject])

proto - объект, который станет прототипом вновь созданного объекта.

propertiesObject - необязательный параметр. Если указан и не равен undefined, должен быть объектом, чьи собственные перечисляемые свойства (то есть такие, которые определены на самом объекте, а не унаследованы по цепочке прототипов) указывают дескрипторы свойств, добавляемых в новый объект.

const person = Object.create(
{},
{
name: {
value: “Asya”, // эти поля не будут итерируемыми
},
birthyear: {
value: 1991, // эти поля не будут итерируемыми
}
}
)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Object.assign()

A

Статический метод Object.assign(целевой объект, изначальный объект, объекты) копирует все перечисляемые собственные свойства из одного или нескольких исходных объектов в целевой объект.

Создает независимый клон объекта
const target = {};
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
console.log(target ); // { b: 4, c: 5 };
target ! == source

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Object.freeze()

A

Замораживает объект: другой код не сможет удалить или изменить никакое свойство.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Object.isFrozen()

A

Определяет был ли объект заморожен.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Object.defineProperty()

A

Object.defineProperty(obj, prop, descriptor)

Определяет новое или изменяет существующее свойство непосредственно на объекте, возвращая этот объект.

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

Дескрипторы свойств, присутствующие в объектах, бывают двух основных типов: дескрипторы данных и дескрипторы доступа. Дескриптор данных — это свойство, имеющее значение, которое может быть (а может и не быть) записываемым. Дескриптор доступа — это свойство, описываемое парой функций — геттером и сеттером. Дескриптор может быть только чем-то одним из этих двух типов; он не может быть одновременно обоими.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Object.hasOwn()

A

Статический метод возвращает true, если указанный объект имеет указанное свойство в качестве собственного свойства. Если свойство унаследовано или не существует, метод возвращает false.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly