Orthopâtre JavaScript sans fonction ni json

Il vient d'ouvrir le fichier javascript d'un client et les premières lignes sont les suivantes:

{ var s_account="blog"; } 

Ce que je n'obtiens pas. Normalement, selon mon expérience, les accolades bouclent autour d'une fonction …

 function welcome(){ ... 

… ou un Json Objet JavaScript

 var attributes = { this : "that... 

Quelqu'un peut-il me dire pourquoi il y a des accolades sans texte devant eux ou après eux? Que fait-il / quel est le but?

Quelqu'un peut-il me dire pourquoi il y a des accolades sans texte devant eux ou après eux? Que fait-il / quel est le but?

Il n'y a aucun point significatif dans Javascript. Il agira exactement comme si le code était juste

 var s_account="blog"; 

Spéculation

Dans d'autres langues qui ont une portée de bloc, cela pourrait restreindre la portée de la variable, mais puisque JS n'a pas cette fonctionnalité (pour le meilleur ou pour le pire), les entretoises sans structure de contrôle ou fonction sont essentiellement sans signification et ignorées.

Très probablement, ce code a été laissé à partir d'une fonction supprimée ou d'une déclaration si. Ce n'est certainement pas un modèle à copier.

C'est un bloc et totalement inutile à moins que vous l'étiquette:

 block: { var s_account="blog"; break block; alert("not executed"); } 

La seule raison logique de faire quelque chose comme ça, en tête, est une technique d'organisation.

 function banana(){ // private members { var foo = "foo", bar = "bar", baz = "baz"; function bux(){ console.log("bux"); } } // public members this.fin = "fin"; this.fang = "fang"; this.foom = "foom"; this.shamalamadingdong = function(){ bux(); }; } 

En outre, la plupart des IDE vous permettront d'effondrer ce bloc "membres privés" et de le sortir de votre chemin.

C'est ce qu'on appelle une déclaration de bloc . Il vous permet de grouper des expressions. Il est normalement utilisé avec des structures de contrôle comme if et while , mais peut également être utilisé seul.

Étant donné que JavaScript n'a pas de portée de bloc, le code s'exécute dans la même portée (comme si le {} n'était pas là).

Exemple:

 { var s_account="blog"; } console.log(s_account); 

Cela fonctionne bien.