validador script jshintrc eslinter javascript jslint

javascript - script - jslint vs jshint



¿Por qué JSLint se queja de "Unexpected ''else'' after ''return''"? (3)

JSLint se queja de que el siguiente código (ejemplo inútil) no es válido:

(function (x) { "use strict"; if (x === 1) { return 1; } else if (x === 2) { return -1; } return 0; }(1));

Error: Problema en la línea 4 carácter 9: inesperado ''else'' después de ''return''.

devuelve 1;

¿Se sugiere seriamente que es malo usar declaraciones de devolución dentro de una estructura if / else?

Piensa que esta versión está bien:

(function (x) { "use strict"; var returnval = 0; if (x === 1) { returnval = 1; } else if (x === 2) { returnval = -1; } return returnval; }(1));


Es mejor tener una función siempre devolver algo ya que agrega consistencia. Se sabe que JSLint es bastante estricto y lastima los sentimientos de los programadores. No puedo evitarlo. Personalmente creo que la versión 1 está bien


Lo que he encontrado con jslint es que si cumple con las reglas, el 50% es ridículo pero no tiene un impacto negativo en su código. El otro 50% (o así) le dará un buen beneficio. Así que hazlo por el otro 50%. Este ejemplo en particular lo obliga a ser explícito acerca de lo inverso de una condición o similar ... en lugar de dejarlo implícito con otra cosa ... lo mismo se aplica si / else me refiero.


Solo te digo que else después del return es superflua. Lo siguiente está bien:

(function (x) { "use strict"; if (x === 1) { return 1; } if (x === 2) { return -1; } return 0; }(1));