В Adobe Brackets я получаю предупреждения от JSLint при написании строгого кода ['use strict'] о том, что мой оператор switch case имеет неправильный формат:
например. Ожидаемый «регистр» в столбце #, а не в столбце #
Если я перемещаю все внутри оператора switch назад на одну «вкладку», JSLint доволен.
Но Adobe Brackets (и аналогичные приложения с кодом) хочет отступ для операторов case, и даже при использовании Code Beautify он также форматирует код так, чтобы он имел отступ перед оператором case.
- При использовании строгого кода, действительно ли JSLint предлагает правильный способ форматирования операторов switch-case?
- Есть ли способ исправить/сделать JSLint в Adobe Brackets, чтобы он считал этот отступ правильным? (Я бы хотел не взламывать код JSLint)
- Зачем редакторам форматировать оператор switch-case таким образом, если строгий код не хочет, чтобы вы это делали?
- Я действительно просто делаю что-то не так здесь?
- Является ли это просто недостатком JSLint, и есть ли способ избежать использования оператора switch-case, а затем вообще, таким образом, в процессе также делая JSLint счастливым?
- Должен ли я вообще прекратить использовать JSLint? И переключиться на что-то другое?
Этот код вложен в цикл for:
switch (curButton.button.innerText.toLowerCase()) {
case this.Part1.Button.ButtonText.toLowerCase():
this.Part1.Button.ButtonText = curButton.button.innerText;
this.Part1.Button.Element = curButton.button;
this.Part1.Button.CurrentClass = curButton.button.className;
console.log(smgData.PodCast.Parts.Part1.Button);
break;
case this.Part2.Button.ButtonText.toLowerCase():
this.Part2.Button.ButtonText = curButton.button.innerText;
this.Part2.Button.Element = curButton.button;
this.Part2.Button.CurrentClass = curButton.button.className;
console.log(smgData.PodCast.Parts.Part2.Button);
break;
case this.Part3.Button.ButtonText.toLowerCase():
this.Part3.Button.ButtonText = curButton.button.innerText;
this.Part3.Button.Element = curButton.button;
this.Part2.Button.CurrentClass = curButton.button.className;
console.log(smgData.PodCast.Parts.Part3.Button);
break;
}
Вот базовый код, который будет воспроизводить это на https://www.jslint.com/.
function abcd() {
var a;
var b;
switch (a) {
case 1:
a=b;
break;
case 2:
b=a;
break;
}
}
switch
. Здесь вы можете избежать этого и сделать код намного короче, используя скобки, но это не похоже на решение, о котором вы просите. - person CertainPerformance   schedule 03.11.2019smgData.PodCast.Parts
совпадает сthis
? Мне интересно, можно ли, например,console.log(smgData.PodCast.Parts.Part1.Button);
превратить вconsole.log(this.Part1.Button);
- person CertainPerformance   schedule 03.11.2019this.Part1.Button
, но я называю это так только для отладки, я не оставляю тамconsole.log
. - person AJ Smith 'Smugger'   schedule 03.11.2019