Penso che tu abbia ragione - jslint non si lamentava in questo modo. Invece, ti ha detto che dovevi fare qualcosa con ex
, giusto? Controllerò Github per vederlo e modificarlo più tardi. EDIT: Grande cattura [da te]! Crockford, l'autore di JSLint, added this on April 29th of this year sulla linea 3444. E usa i blocchi vuoti catch
nella sorgente di jslint, quindi immagino che debba darci anche il kludge. ; ^)
JSLint vuole che kludge vuote catch
blocchi con ignore
come il nome della variabile in modo che sia evidente a persone che leggono il codice che si intenzionalmente significava di non fare nulla nel vostro catch
blocco. Come Crockford says elsewhere, egli ritiene che "è difficile scrivere programmi corretti usando idiomi difficili da distinguere da errori evidenti".
1.) ex
usato (bene)
Quindi (come sto indovinando si sa) se si scrive il codice e fare qualcosa con ex
, JSLint non si lamenta.
/*jslint browser: true, white:true, sloppy:true*/
var spam;
try {
spam = "spam";
} catch (ex) {
window.alert(ex);
}
2.) ex
mezzi inutilizzati ignore
(va bene anche)
Quindi, se si intende di non fare nulla con ex
, vuole il codice per dire la gente non ha rovinare lasciando lì l'equivalente ex
nominando quella variabile ignore
.
/*jslint browser: true, white:true, sloppy:true*/
var spam;
try {
spam = "spam";
} catch (ignore) {
}
3.) ignore
utilizzato (errore!)
Quindi, in tipico stile Crockfordian, è ora non può uso ignore
ed effettivamente fare qualcosa nel blocco catch
!
/*jslint browser: true, white:true, sloppy:true*/
var spam;
try {
spam = "spam";
} catch (ignore) {
window.alert(ignore);
}
Che dà
Unexpected 'ignore'. } catch (ignore) {
Solo un altro iper-esplicita "non fanno il codice che sembra un errore" azione di Crockford.
(A parte:. Potrebbe essere divertente per dare un'occhiata a Why are empty catch blocks a bad idea mentre sei in materia Onestamente, anche se ignore
è probabilmente una convenzione utile, sulla base di tale discussione (voglio dire, include discutere Skeet contro vuote catch
blocchi !), Sono un po 'sorpreso Crockford consente il kludge ignore
, come il link sopra ha argomenti che sentono molto simile a lui per chiamare alcune espressioni regolari "non sicuri".)
Wow! Grande scoperta e ottima risposta! Molte grazie. Mi stavo chiedendo onestamente se JSLint fosse stato cambiato sulla falsariga di quello che hai menzionato o meno, ma non avevo usato una dichiarazione di prova da così tanto tempo, non ne ero sicuro. Grazie ancora per quella bella risposta e questo ottimo link. – HartleySan