Il existe cinq sémantiques de parenthèses en Javascript
Sémantique 1, liste de paramètres lorsque la fonction est déclarée
Copiez le code comme suit :
fonction fonction(arg1,arg2){
//...
}
Sémantique 2, utilisée conjointement avec certaines instructions pour obtenir certains effets limitants
Copiez le code comme suit :
// utilisé avec for in
pour(var a dans obj){
//...
}
// utilisé avec si
si(bouh){
//...
}
// utilisé avec while
pendant que(bouh){
//...
}
// utilisé avec do while
faire{
//...
} pendant que (bouh)
Remarque : Lorsqu'elles sont utilisées avec if, while et do while, les parenthèses convertiront implicitement le résultat de l'expression en une valeur booléenne. Voir Conversion de type implicite en JavaScript.
Sémantique 3, utilisée avec new pour transmettre des valeurs (paramètres réels)
Copiez le code comme suit :
// Supposons que la classe Person ait été définie, qui comporte deux champs name (name) et age (age)
var p1 = nouvelle Personne('Jack',26);
Sémantique 4, en tant qu'opérateur d'appel pour des fonctions ou des méthodes objet (si des paramètres sont définis, les paramètres réels peuvent également être transmis de la même manière que Sémantique 3)
Copiez le code comme suit :
// Supposons que la fonction func ait été définie
fonction();
// Supposons que l'objet obj a été défini et possède la méthode func
obj.func();
Voici le type d'opérateur, certaines personnes aiment l'utiliser de cette façon
type de (xxx);
Veuillez noter que les parenthèses après typeof ne sont pas sémantiques 4 (c'est-à-dire pas un appel de fonction), mais la sémantique 5 mentionnée plus tard. J'utilise habituellement typeof sans les parenthèses suivantes.
Sémantique 5, évaluation des expressions forcées
Concernant Semantic 5, tout le monde est plus familier avec l'utilisation d'eval pour analyser JSON.
Copiez le code comme suit :
fonction strVersJson(str){
// Les opérateurs de force () sont ajoutés des deux côtés de la chaîne dans eval
var json = eval('(' + str + ')');
renvoyer json ;
}
Un autre exemple est que les fonctions anonymes sont souvent utilisées pour l'auto-exécution.
Copiez le code comme suit :
(fonction(){
//...
})();