98 votes

Quelle est la différence entre rendement et return() ?

<pre><code></code><p><code></code>.</p><pre><code></code></pre><p><code></code>.</p><p><code></code><code></code>?</p></pre>

178voto

RemcoGerlich Points 5676

Même dans les rapports entre

et

Autrement dit, rien. Les parenthèses sont autorisés parce qu’ils sont autorisés à n’importe quelle expression d’influencer l’ordre d’évaluation, mais dans vos exemples, ils sont simplement superflues.

n’est pas une fonction, mais une *déclaration*. Il est syntaxiquement analogue d’autres instructions de flux de contrôle simple comme et `` qui ne soit utiliser des parenthèses.

21voto

alpartis Points 483

Il n’y a pas de différence.

``n’est pas un appel de fonction, mais est une instruction de langage. Tout ce que vous faites avec les parenthèses est simplement un regroupement votre valeur de retour si elle peut être évaluée. Par exemple, vous pourriez écrire :

Dans ce cas, vous retournez la valeur de l’instruction , qui renvoie une valeur booléenne ou selon la valeur de .

19voto

Zaheer Ahmed Points 12945

En fait ici, la priorité de l' () est plus élevé, de sorte qu'il évaluer en premier:

Ici, premièrement ("1") évalué, de la manière suivante:

("1")                     ==> "1"
("1","2")                 ==> "2"
("1","2","3")             ==> "3"
("1"+"2","2"+"2","3"+"2") ==> "32"
(2+3+6)                   ==>  11

donc déclaration ci-dessus est équivalente à:

return "1";

Voir visuellement:

viusal

Donc, il n'y a fondamentalement pas de différence dans les fonctionnalités, mais la seconde on peut être un très peu lent, comme il d'abord résoudre les crochets.

9voto

Evan Knowles Points 3229

Il n'y a pas de différence, les parenthèses sont optionnelles. Voir MSDN:

return[(][expression][)];

L'expression en option argument est la valeur retournée par la fonction. Si omis, la fonction ne retourne pas de valeur.

Vous utilisez l'instruction return pour arrêter l'exécution d'une fonction et de renvoyer la valeur de l'expression. Si l'expression est omis, ou pas d'instruction return est exécutée à partir de l'intérieur de la fonction, l'expression qui a appelé la fonction actuelle est affectée de la valeur undefined.

9voto

Salvador Dali Points 11667

Il n'y a absolument aucune différence. Si vous les regardez JS (ECMAScript) spécification de retour de la déclaration. Parmi beaucoup d'autres choses, c'est de vous dire :

de retour [sans LineTerminator ici] Expression ;

que vous pouvez fournir expression d' return. L'Expression est - hello, Math.abs(x), yourCustomFunc(7), ou encore dans le second cas, cela peut être 1 ou (1). L'Expression 1 après l'évaluation est la même que (1) et le même que (((((1)))))) ou même comme quelque chose de vraiment bizarre comme (+(!(+(!1)))).

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