2014-09-04 7 views
5

Ich entschuldige mich im Voraus der Zeit, ich bin ganz offensichtlich nicht in der Lage zu verstehen, wie man jshint konfigurieren.jshint, eqnull, Verwenden Sie "===" zum Vergleich mit "undefined"

Ich habe diese Zeile Code

if (data == undefined || (typeof data === 'object' && data.length === 0)) { 
... 

jshint unterstreicht die erste == und sagen

Use '===' mit 'undefined' zu vergleichen.

Ich habe /* jshint eqnull:true */ hinzugefügt. Ich dachte, das ist die Option. Ich sehe sogar an example here (Suche nach eqnull).

Was fehlt mir?

+0

'eqnull' unterdrückt die Warnung über den Vergleich mit' null', nicht 'undefined'. – Barmar

+0

Kann die Warnung über 'undefiniert' unterdrückt werden? –

+0

Ich sehe in der Dokumentation keine Erwähnung von so etwas. – Barmar

Antwort

1

In Javascript, undefined und null sind zwei unterschiedliche Werte. Ein direkter Vergleich anderer Werte mit undefined ist problematisch, da null == undefined, aber typeof null != typeof undefined.

Von Ihrem Kommentar oben scheint es, dass Sie explizit nach null und undefined Werten suchen möchten. In diesem Fall könnten Sie (data === undefined || data === null) schreiben.

Wenn Sie daran interessiert sind, einen kürzeren Ausdruck zu behalten, könnten Sie einfach data == null schreiben, was funktional identisch ist. Wie Sie oben erwähnt haben, müssen Sie die Option /* jshint eqnull:true */ angeben.

6

Verwenden Sie diese Option für die gleiche

"-W041": false