2014-09-04 7 views
5

Mi scuso in anticipo, sono assolutamente incapace di capire come configurare jshint.jshint, eqnull, utilizzare '===' per confrontare con 'indefinito'

ho questa riga di codice

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

jshint è sottolineando il primo == e dicendo

Usa '===' da confrontare con 'undefined'.

Ho aggiunto /* jshint eqnull:true */. Ho pensato che fosse questo l'opzione. Vedo persino an example here (cerca eqnull).

Cosa mi manca?

+0

'eqnull' sopprime l'avviso relativo a confronto con' null', non 'undefined'. – Barmar

+0

È possibile sopprimere l'avviso su 'undefined'? –

+0

Non vedo alcuna menzione di una cosa del genere nella documentazione. – Barmar

risposta

1

In Javascript, undefined e null sono due valori distinti. Il confronto diretto di altri valori su undefined è problematico, perché null == undefined, ma typeof null != typeof undefined.

Dal tuo commento di cui sopra, sembra che si desidera in modo esplicito per verificare la presenza di entrambi i null e undefined valori, nel qual caso si potrebbe scrivere (data === undefined || data === null).

Se si desidera mantenere un'espressione più breve, è sufficiente scrivere data == null, che è funzionalmente identico. Come accennato sopra, dovrai fornire l'opzione /* jshint eqnull:true */.

6

Utilizzare questa opzione per la stessa

"-W041": false