Мутирование Flashcards

1
Q

Мутирование

A
  1. Объекты и Массивы мутабельны, когда меняем через точку (присваиваем что-то новое), то мутируем объект.
    Если ссылки на объект разные, то по факту объект один.
    Пример объекта:
    let user = {
    name: ‘Dimych’,
    age: 32
    }const superman = user
    superman.age = 1000
    expect(user.age).toBe(1000)

Пример массива:
test (‘arr’, () => {
let users = [
{
name: ‘Dimych’,
age: 32
},
{
name: ‘Dimych’,
age: 32
}
]

let admins = users
admins.push({name: 'Banda', age: 10})
expect(users[2]).toEqual({name: 'Banda', age: 10}) })
  1. Значение - переприсваивание, т.е. примитивы нельзя изменить, так как их можно пересоздать и переприсвоить новое значение.
    Константа защищает примитивы, но не объекты и массивы

let usersCount = 100;
let adminsCount = usersCount
adminsCount++

Но usersCount будет равно все равно 100, а не 101

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

Лучше всего в Реакте избегать мутирующих функций, таких как push, sort и ссылки

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