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
Code javascript : | Sélectionner tout |
console.log(12.toFixed(2)); // SyntaxError: identifier starts immediately after numeric literal
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.