Maison  >  Article  >  interface Web  >  Pourquoi « » concatène-t-il des chaînes mais « - » soustrait-il des nombres en JavaScript ?

Pourquoi « » concatène-t-il des chaînes mais « - » soustrait-il des nombres en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-24 00:05:14409parcourir

Why Does ' ' Concatenate Strings But '-' Subtracts Numbers in JavaScript?

Comportement divergent des opérateurs ' ' et '-' avec des chaînes et des nombres en JavaScript

JavaScript présente un comportement déroutant lors de l'exécution d'opérations mathématiques entre des chaînes et des chiffres. Plus précisément, le comportement des opérateurs ' ' et '-' varie en fonction des types d'opérandes impliqués.

Prenons deux exemples pour illustrer cette observation :

  1. Concaténation de chaînes ( ):

    console.log("1" + 1);

    Sortie : "11"

  2. Soustraction de nombres (-):

    console.log("1" - 1);

    Sortie : 0

Raisonnement :

  1. Concaténation de chaînes : L'opérateur ' ' effectue une concaténation de chaînes lorsque l'un des les opérandes sont une chaîne. Dans le premier exemple, "1" est une chaîne, donc JavaScript convertit le numérique 1 en chaîne et les concatène, ce qui donne "11".
  2. Soustraction de nombres : D'un autre côté , l'opérateur '-' ne peut pas effectuer de soustraction sur des chaînes. Au lieu de cela, JavaScript tente de convertir l'opérande chaîne (« 1 » dans le deuxième exemple) en nombre. Cette conversion réussit car « 1 » peut être valablement interprété comme une valeur numérique. Cependant, la soustraction résultante de 1 à 1 donne 0.

Ce comportement découle du fait que JavaScript adhère au paradigme du « typage lâche », dans lequel la coercition de type est automatiquement effectuée pour rendre les opérations compatibles. Cependant, dans le cas de l'opérateur '-' et des chaînes, la coercition de type ne peut pas être appliquée, conduisant au comportement observé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn