Maison >interface Web >js tutoriel >Le placement des accolades est-il important dans les retours de fonctions JavaScript ?
Impact du placement des accolades sur les résultats des fonctions JavaScript
En JavaScript, le placement des accolades dans les fonctions peut affecter de manière significative le comportement du code. Considérez les deux exemples suivants :
<code class="javascript">function test() { return { javascript: "fantastic" }; } var r = test(); try { alert(r.javascript); } catch (e) { alert('no - it broke: ' + typeof r); }</code>
Dans ce cas, la fonction test() renvoie undéfini et un message d'alerte « non - c'est cassé : undéfini » s'affiche. Cependant, si l'accolade est placée sur la même ligne que return, comme indiqué ci-dessous :
<code class="javascript">function test() { return { javascript: "fantastic" }; } var r = test(); try { alert(r.javascript); } catch (e) { alert('no - it broke: ' + typeof r); }</code>
La fonction test() renverra un objet et le message d'alerte affichera "fantastique".
Cette différence provient de l'insertion automatique d'un point-virgule par JavaScript. Lorsqu'une ligne ne se termine pas par un point-virgule, mais pourrait potentiellement marquer la fin d'une instruction, JavaScript en insère automatiquement un. Par conséquent, le premier extrait de code est effectivement interprété comme :
<code class="javascript">function test() { return; // inserted semicolon { javascript: "fantastic" }; }</code>
Le point-virgule après le retour ; termine l'instruction return, ce qui fait que le bloc d'accolade devient un code inaccessible. Ainsi, test() renvoie undefined.
En revanche, le deuxième exemple ne déclenche pas l'insertion automatique de point-virgule, ce qui donne une valeur de retour d'objet valide. Ceci est équivalent au code suivant :
<code class="javascript">function test() { var myObject = new Object(); myObject.javascript = "fantastic"; return myObject; }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!