Saya mencoba menggunakan isNaN
fungsi global di dalam fungsi panah di modul Node.js tapi saya mendapatkan kesalahan ini:
[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)
Ini kode saya:
const isNumber = value => !isNaN(parseFloat(value));
module.exports = {
isNumber,
};
Adakah yang tahu kesalahan saya?
PS: Saya menggunakan panduan gaya AirBnB.
javascript
eslint
Elias Garcia
sumber
sumber
isNaN
danNumber.isNaN
bukan fungsi yang sama. MisalnyaisNaN('1a') true Number.isNaN('1a') false
Number('1.2.3')
pada contoh di atas.typeof
cek.Number.isNaN(+'1.2.3')
yang hanya tambahan+
jika Anda menggunakanNumber.isNaN
FYI, ini tidak akan berfungsi untuk IE. Periksa di sini di kompatibilitas browser.
sumber
@Andy Gaskell
isNumber('1.2.3')
kembalitrue
, Anda mungkin ingin mengedit jawaban dan menggunakannyaNumber()
sebagai gantiparseFloat()
sumber
Dalam kasus saya, saya ingin memperlakukan 5 (bilangan bulat), 5,4 (desimal), '5', '5,4' sebagai angka tetapi tidak ada yang lain misalnya.
Jika Anda memiliki persyaratan serupa, di bawah ini mungkin berfungsi lebih baik:
Untuk memasukkan angka negatif:
Ini akan menghapus masalah Anda tentang penggunaan global isNaN juga. Jika Anda mengonversi fungsi isNum ke fungsi ES5 normal, itu juga akan berfungsi pada browser IE.
sumber
Bagi saya ini berfungsi dengan baik dan tidak memiliki masalah dengan ESlint
window.isNaN()
sumber
Number.isNaN('abc')
adalahfalse
. DanisNaN('abc')
adalahtrue
window.isNan()
bertentangan dengan konfigurasi AirBnb lainnya (aturannya adalah eslint.org/docs/rules/no-restricted-properties )no-restricted-properties
karena masalah ini