Comment déterminer si un objet Date contient une date invalide en JavaScript ?
Bonjour à tous ! Je suis débutant en JavaScript et j'ai rencontré un problème en travaillant avec les dates. Je dois parser des chaînes qui peuvent contenir des dates valides (par exemple, "2024-10-15") ou des déchets (par exemple, "abc" ou "32.13.2024"). J'utilise le constructeur `new Date()`, mais il se comporte étrangement.
Voici un exemple :
```javascript
let date1 = new Date("2024-10-15"); // fonctionne
let date2 = new Date("abc"); // crée aussi un objet !
```
Le problème est que `new Date("abc")` ne lance pas d'erreur, mais crée un objet Date avec une valeur interne `NaN`. Quand j'essaie de l'afficher avec `console.log`, je vois `Invalid Date`. Mais comment vérifier programmatiquement que la date est invalide ? La méthode `typeof` affiche "object", et `instanceof Date` retourne `true` même pour les déchets.
J'ai essayé de comparer avec `NaN` — ça ne marche pas, car `NaN !== NaN`. J'ai utilisé `isNaN(date1)` — mais il retourne `false` pour une date valide et `true` pour une date invalide, mais cela fonctionne de manière instable. Comment vérifier correctement et de manière fiable que la