awesome-everything EN
↑ Обратно к восхождению

Базовый CS с нуля

Variables and state: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту — binding vs значение, assignment как запись, mutation и состояние, копирование vs reference, ловушки aliasing.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на middle-высоте — в небе
◷ 13 min

Шесть вопросов поперёк всего юнита. Каждый — это решение о том, что реально лежит в ячейке: значение или reference, и что меняется при assignment или mutation. Разберись с моделью памяти — и баги aliasing перестанут быть сюрпризом.

Цель

Убедись, что связываешь четыре идеи юнита: variable — это имя, привязанное (binding) к ячейке; assignment перезаписывает эту ячейку; mutation меняет состояние на месте; примитивы копируются, а объекты разделяются по reference.

Викторина

После 'let score = 0' программа выполняет 'score = 42'. Что изменилось в памяти?

Викторина

Почему читать '=' как «равно» — ловушка, и как читать вместо этого?

Викторина

Баг-репорт: «Я изменил obj2, а obj1 мутировал сам по себе.» В коде было 'let obj2 = obj1'. Что произошло на самом деле?

Викторина

'const user = { name: "A" }; user.name = "B";' выполняется без ошибки. Но 'const x = 1; x = 2;' падает. Почему?

Викторина

'let a = [1,2]; let b = a; b.push(3);' — затем код в другом месте читает a.length, ожидая 2. Почему он видит 3?

Викторина

В чём разница между «состоянием» программы и «мутациями» (mutation), которые его породили?

Итог

Сквозная линия: variable — это имя, привязанное (binding) к ячейке, и имя и значение — разные вещи. Assignment — разрушающая запись, «получает», а не «равно». Mutation меняет ячейку на месте, а состояние — это снимок всех текущих содержимых ячеек. Решающее различие — что лежит в ячейке: примитивное значение (копируется при assignment, поэтому изменения не распространяются) или reference на объект кучи (копируется как адрес, создавая алиасы, где одна mutation видна через каждое имя). const запечатывает, какой reference держит ячейка, но никогда — содержимое за ним.

Продолжить восхождение ↑Variables and state: свободное припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources2
expand
  1. 01
  2. 02

Trademarks belong to their respective owners. Editorial reference only.