«Если я буду следовать JSLint, я буду определять переменные, которые, возможно, никогда не понадобятся.»
Если вы сделаете это по-своему и проигнорируете JSLint, вы все равно будете определять переменныеэто никогда не может быть использовано.
Причина этого в том, что JavaScript обрабатывает все объявления var
внутри функции, как если бы они произошли в верхней части функции, , даже если вы думали, что объявляетепеременная (и) внутри некоторой условной логики, например, внутри определенной case
(или if
или for
или чего-либо еще).Это называется «подъем».Фактические значения затем присваиваются переменным в той точке кода, в которой вы выполняли присваивание.То есть переменные «hoisted» сначала получают неопределенное значение, а затем в той точке кода, где у вас было var a = "something";
значение, будет присвоено.
Так что, как сказали другие ответы, вы можетеПолучите ваш код для передачи JSLint, объявив переменные в верхней части функции (запятую, разделенную одним оператором var
), а затем присвойте значения в любой точке, которая вам нравится.