Maison > interface Web > js tutoriel > le corps du texte

Le placement des accolades est-il important dans les retours de fonctions JavaScript ?

Mary-Kate Olsen
Libérer: 2024-10-22 21:03:29
original
723 Les gens l'ont consulté

Does Curly Brace Placement Matter in JavaScript Function Returns?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!