Lorsque JavaScript interprète "{}" comme un bloc vide
En JavaScript, lorsqu'une paire d'accolades vides "{}" est rencontré, l’interpréteur l’interprète initialement comme un bloc de code vide plutôt que comme un objet vide. Ce comportement découle de la grammaire du langage, où "Block" est l'un des principaux types d'instructions.
Block vs. Object Literal
JavaScript définit une instruction Block comme une paire d'accolades contenant un ensemble d'instructions. Les littéraux d'objet, en revanche, sont des ExpressionStatements et ont des paires clé-valeur entourées d'accolades.
Règle d'interprétation
L'analyseur JavaScript donne la priorité à l'interprétation de "{}" en tant que bloc car il s'agit d'une structure plus spécifique qu'un objet littéral. À moins que les accolades n'entourent des paires clé-valeur ou ne soient précédées de mots-clés tels que « const » ou « let », elles seront traitées comme un bloc vide.
Incohérences entre Node.js et Firebug
Comme mentionné dans la réponse fournie, il existe une différence dans la façon dont Node.js et Firebug interprètent "{}":
Comme le montrent les extraits de code fournis par V8 (moteur de Chrome) et SpiderMonkey (moteur de Firefox), l'analyseur vérifie d'abord les accolades et procède à leur analyse sous forme de bloc s'il est trouvé.En résumé, l'interprétation de JavaScript de "{}" en tant que bloc vide suit les règles de grammaire donnant la priorité aux instructions Block. Les incohérences entre Node.js et Firebug résultent de leurs différentes approches d'évaluation, Node.js le traitant comme une expression et Firebug comme une instruction.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3