IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

JavaScript : comment appliquer une méthode à un numérique littéral
Par Bovino

Le , par Bovino

0PARTAGES

En JavaScript, il existe deux méthodes pour appeler une méthode ou récupérer un propriété d'un objet : la syntaxe à crochets et la syntaxe pointée, la plus courante.
Par exemple, pour récupérer la taille d'une chaine ou d'un tableau, on utilisera
Code javascript : Sélectionner tout
1
2
console.log('foo'.length);  // 3 
console.log([1,2,3].length);  // 3

Avec la notation à crochets, la syntaxe deviendra
Code javascript : Sélectionner tout
1
2
console.log('foo'['length']);  // 3 
console.log([1,2,3]['length']);  // 3

Et cela fonctionne aussi bien avec les méthodes
Code javascript : Sélectionner tout
1
2
console.log('foo'['replace']('foo', 'bar'));  // bar 
console.log([1,2,3]['push'](4));  // 4

Tout cela fonctionne parfaitement avec tous les objets possibles.

Tous ? Vraiment ?
En fait, pas vraiment. Un problème survient avec les littéraux numériques entiers.
En effet, si l'on fait
Code javascript : Sélectionner tout
console.log(12.5.toFixed(2));  // 12.50
Mais
Code javascript : Sélectionner tout
console.log(12.toFixed(2));  // SyntaxError: identifier starts immediately after numeric literal
c'est le drame... En effet, dans le cas des littéraux numériques, le point sert à séparer la partie entière de la partie décimale et dans le dernier exemple, toFixed(2) n'est pas une partie décimale valide.

L'astuce va être alors de mettre deux points à la suite et le tour est joué :
Code javascript : Sélectionner tout
console.log(12..toFixed(2));  // 12.50

Bien entendu, c'est une question que vous ne vous êtes jamais posée parce qu'en toute franchise, les cas où cela peut servir sont tellement rares qu'on se demande même s'il en existe !
Mais au moins, ça vous permettra de briller lors des dîners entre JavaScripteurs.

Une erreur dans cette actualité ? Signalez-nous-la !