Maison > interface Web > js tutoriel > Comment les déclarations de fonctions au niveau des blocs se comportent-elles dans les modes ES6 strict et non strict ?

Comment les déclarations de fonctions au niveau des blocs se comportent-elles dans les modes ES6 strict et non strict ?

DDD
Libérer: 2024-12-11 12:44:11
original
632 Les gens l'ont consulté

How Do Block-Level Function Declarations Behave in ES6 Strict and Non-Strict Modes?

Sémantique des fonctions au niveau des blocs dans ES6

Les déclarations de fonctions au niveau des blocs ont été introduites dans ES6, suscitant des questions sur leur sémantique.

Sémantique de base

Non-strict mode Strict mode
Hoisted and visible outside of the block Not visible outside of the block

Comportement des extensions Web

Dans navigateurs, la sémantique des extensions Web s'applique aux fonctions de niveau bloc en mode non strict :

Web Extensions Hoisted? Visible Outside of Block? TDZ?
Yes To both the block and function Yes, as a var declaration Undefined prior to block execution

Clarification du mode strict

Le « mode strict » dans le contexte des fonctions de niveau bloc fait référence au rigueur de la fonction dans laquelle apparaît le bloc contenant la déclaration de fonction. L'exemple suivant le démontre :

// Non-strict surrounding code

{
    function foo() { "use strict"; }
}
Copier après la connexion

Ce code est considéré comme "mode strict" pour la fonction foo.

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.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal