JavaScript null vs undefined

Harshit Jindal 12 octobre 2023
  1. null en JavaScript
  2. undefined en JavaScript
  3. Pourquoi les gens confondent-ils null et undefined avec être le même en JavaScript ?
  4. Différences entre null et undefined en JavaScript
JavaScript null vs undefined

JavaScript est un langage puissant, mais l’utilisation de différents types de données peut être source de confusion, en particulier pour les débutants. Les types de données null et undefined semblent ne rien représenter, mais ils sont différents.

Il faut faire la distinction entre ceux-ci et savoir quand utiliser lequel pour éviter les bogues d’exécution.

Cet article traite de null et undefined et de leur différence.

null en JavaScript

null est un objet en JavaScript. Si cela n’a pas de sens, ce n’est pas grave car il s’agit d’un bogue dans JavaScript. Il est censé être l’un des types de données primitifs, mais effectuer cette modification cassera de nombreuses bases de code existantes.

C’est une valeur attribuée par l’utilisateur ; JavaScript ne donne jamais aux variables la valeur null par lui-même. C’est une valeur attribuée aux variables laissées vides. Elle peut être qualifiée de valeur vide.

undefined en JavaScript

undefined est un état. Lorsque nous déclarons une variable mais que nous ne l’initialisons jamais avec une valeur, elle est appelée indéfinie. C’est la valeur par défaut utilisée par JavaScript pour initialiser les variables. C’est aussi une valeur vide.

Pourquoi les gens confondent-ils null et undefined avec être le même en JavaScript ?

null et undefined sont identiques dans les aspects suivants :

  • Les deux sont des types de données primitifs.
  • Si vous les comparez en utilisant l’opérateur d’égalité ==, il renvoie vrai.
null == undefined;  // returns true

JavaScript considère les deux comme des valeurs vides.

  • undefined et null renvoient tous deux false lorsqu’ils sont utilisés dans une expression.
!!undefined;  // false
!!null;       // false

Différences entre null et undefined en JavaScript

  • Différence de type
console.log(typeof (null));       // object
console.log(typeof (undefined));  // undefined

Dans l’exemple ci-dessus, nous utilisons l’opérateur typeof pour vérifier leurs types de données. Il renvoie le type de données null comme un objet et le type de données undefined en tant que undefined. Bien que l’opérateur d’égalité == renvoie vrai, l’opérateur d’identité === renverra faux car ils sont égaux en valeur mais ont un type de données différent.

  • Opérations arithmétiques

null se comporte comme un nombre sans valeur lors de l’exécution d’opérations arithmétiques. L’exécution d’opérations donne des résultats similaires à comme si null était 0.

console.log(4 + null);  // 4
console.log(4 * null);  // 0
console.log(4 - null);  // 4
console.log(4 / null);  // Infinity

Il est important de noter que bien qu’il puisse être traité comme 0 dans les opérations arithmétiques, la valeur de null n’est pas 0.

Pendant ce temps, undefined renvoie NaN lorsqu’il est utilisé dans des opérations arithmétiques.

console.log(4 + undefined);  // NaN
console.log(4 * undefined);  // NaN
console.log(4 - undefined);  // NaN
console.log(4 / undefined);  // NaN
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn