Трудно сказать, что лучше делать без контекста.
Если этот код выполняется каждый раз, когда изменяется proxyTypePref, то вам всегда нужно устанавливать shareProxiesPref.disabled
.
Я бы согласился, что оператор if был бы немного более читабельным, чем текущий код.
Не лучше ли сделать if на proxyTypePref.value
, а затем объявить переменную внутри результата, только если вам это нужно?
Если вы говорите строго об объявлении переменной, то не имеет значения, поместили ли вы ее в оператор if. Любая переменная Javascript, объявленная внутри функции, находится в области действия всей функции, независимо от того, где она объявлена.
Если вы говорите о выполнении document.getElementById
, тогда да, гораздо лучше не делать этот вызов, если вам не нужно.