193 votes

parseInt vs unary plus, quand utiliser lequel ?

Quelles sont les différences entre cette ligne :

var a = parseInt("1", 10); // a === 1

et cette ligne

var a = +"1"; // a === 1

Este test jsperf montre que l'opérateur unaire est beaucoup plus rapide dans la version actuelle de chrome, en supposant que c'est pour node.js !?

Si j'essaie de convertir des chaînes de caractères qui ne sont pas des nombres, les deux retours sont les suivants NaN :

var b = parseInt("test" 10); // b === NaN
var b = +"test"; // b === NaN

Alors quand dois-je préférer utiliser parseInt sur le plus unaire (surtout dans node.js) ? ???

modifier et quelle est la différence avec l'opérateur double tilde ? ~~ ?

3 votes

0 votes

@RokoC.Buljan Le service semble mort. Une mise à jour ?

-2voto

Arman McHitaryan Points 847

Pensez à performance aussi. J'ai été surpris que parseInt bat unary plus sur iOS :) C'est utile uniquement pour les applications web qui consomment beaucoup de CPU. En règle générale, je suggère aux utilisateurs de JS de préférer un opérateur JS à un autre du point de vue des performances mobiles.

Alors, va mobile-first ;)

0 votes

Comme les autres posts l'expliquent, ils font des choses très différentes, donc vous ne pouvez pas facilement échanger l'un contre l'autre

0 votes

@Bergi, c'est vrai, mais ils ont aussi beaucoup en commun. Dites-moi une seule solution de performance en JavaScript qui soit définitivement le seul bon choix ? En général, c'est pour cela que les règles d'or existent pour nous. Le reste est spécifique à la tâche.

4 votes

@ArmanMcHitaryan c'est de la micro-optimisation inutile et cela n'en vaut pas la peine. Consultez cet article - fabien.potencier.org/article/8/

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