2017-10-11 2 views
16

Ich versuche, die isNaN globale Funktion innerhalb einer Pfeilfunktion in einem Node.js Modul zu verwenden, aber ich bin immer diese Fehlermeldung:ESLint unerwartete Verwendung von isNaN

[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)

Dies ist mein Code:

const isNumber = value => !isNaN(parseFloat(value)); 

module.exports = { 
    isNumber, 
}; 

Irgendeine Idee auf was mache ich falsch?

PS: Ich verwende den AirBnB Style Guide.

Antwort

32

Verwenden Sie als documentation suggestsNumber.isNaN.

const isNumber = value => !Number.isNaN(parseFloat(value)); 

Zitiert Airbnb Dokumentation:

Why? The global isNaN coerces non-numbers to numbers, returning true for anything that coerces to NaN. If this behavior is desired, make it explicit.

// bad 
isNaN('1.2'); // false 
isNaN('1.2.3'); // true 

// good 
Number.isNaN('1.2.3'); // false 
Number.isNaN(Number('1.2.3')); // true 
+0

Oh was für ein Fräulein! Ich habe in den mozilla js docs gesucht und sie benutzen die globale Funktion. Ich wusste nicht, dass die Number.isNaN() auch existiert. Vielen Dank! :) –

+0

Ich habe die Antwort hochgestuft, aber ich stimme Airbnbs Begründung ab. – mwilcox

0

FYI, wird dies nicht für den Internet Explorer arbeiten. Überprüfen Sie here bei Browserkompatibilität.

Verwandte Themen