2 votes

Javascript - Je pensais que cela allait changer

J'essaie actuellement de me familiariser avec le passage par référence ou par valeur, et d'après ce que j'ai compris, les objets JS sont passés par référence.

Si c'est le cas, pourquoi la deuxième instruction console.log ne produit-elle pas une version capitalisée de la propriété de l'objet ?

Toute clarification serait la bienvenue !

var string = {
  text: 'This is a string inside an object',
};

console.log(string.text);

string.text.toUpperCase();

console.log(string.text);

3voto

Pranav C Balan Points 10055

En String#toUpperCase ne met pas à jour la chaîne originale, elle renvoie simplement la chaîne en majuscules. Vous devez donc mettre à jour la valeur de la propriété par la valeur retournée.

var string = {
  text: 'This is a string inside an object',
};

console.log(string.text);

string.text = string.text.toUpperCase();

console.log(string.text);

0voto

Frxstrem Points 5384

.toUpperCase() ne modifie pas la chaîne originale, mais renvoie une nouvelle chaîne.

Essayez plutôt ceci :

var string = {
  text: 'This is a string inside an object',
};

console.log(string.text);

string.text = string.text.toUpperCase();

console.log(string.text);

0voto

StackOverMySoul Points 1000

.toUpperCase(); retourne une chaîne de caractères en majuscules mais ne modifie pas l'argument original

0voto

user6801750 Points 202

Extrait du lien MDN ci-dessous : Les chaînes JavaScript sont immuables. Cela signifie qu'une fois qu'une chaîne est créée, il n'est pas possible de la modifier. Cependant, il est toujours possible de créer une autre chaîne en se basant sur une opération sur la chaîne originale. Par exemple : toUpperCase()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures

Extrait du lien MDN ci-dessous : La méthode toUpperCase() renvoie la valeur de la chaîne convertie en majuscules. toUpperCase() n'affecte pas la valeur de la chaîne elle-même.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X