В этом коде есть небольшая разница:
В первом случае идёт сразу ищутся widther и block, а затем при вызове функции присваивается размеры и значения.
Во втором случае поиск widther и block происходит в момент запуска функции.
Разверните спойлер, если хотите увидеть разницу более наглядно
Ваш первый вариант кода:
const widther = document.getElementById('width');
const block = document.getElementById('block');
function review() {
block.style.width = widther.value + "px";
document.getElementById('width-value').innerHTML = widther.value;
}
Ваш второй вариант кода:
function review() {
const widther = document.getElementById('width');
const block = document.getElementById('block');
block.style.width = widther.value + "px";
document.getElementById('width-value').innerHTML = widther.value;
}
По этому, если перед запуском функции из второго варианта кода произошло удаление элементов с id width или block, то код перестанет работать.
Разверните спойлер, если хотите увидеть как это может произойти
Ваш первый вариант кода:
const widther = document.getElementById('width');
const block = document.getElementById('block');
// удаляем элемент со страницы
widther.remove();
function review() {
// работает так как мы заранее сохранили переменные
block.style.width = widther.value + "px";
document.getElementById('width-value').innerHTML = widther.value;
}
Ваш второй вариант кода:
// удаляем элемент со страницы
document.getElementById('width').remove();
function review() {
// перестанет работать, так как поиск на странице уже не находит этого элемента
const widther = document.getElementById('width');
const block = document.getElementById('block');
block.style.width = widther.value + "px";
document.getElementById('width-value').innerHTML = widther.value;
}