Консоль выведет 2, затем 3. Числа — примитивы: присваивание y = x копирует значение, а увеличение y не меняет переменную x.
Что покажет консоль после инкрементации переменной
Консоль выведет 2, затем 3. Числа — примитивы: присваивание y = x копирует значение, а увеличение y не меняет переменную x.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какие значения появятся в выводе консоли после выполнения кода.
var x = 2
var y = x
y++
console.log(x) // ??
console.log(y) // ??
Ответ
Консоль выведет 2, затем 3. Числа — примитивы: присваивание y = x копирует значение, а увеличение y не меняет переменную x.
После var x = 2 и var y = x обе переменные содержат число 2 независимо. Постфиксный y++ записывает в y число 3; возвращаемое старое значение здесь нигде не используется. При объекте две переменные могли бы разделять ссылку на один объект, но к числовым примитивам эта модель неприменима.