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
DDDoriginal
2024-12-11 12:44:11660parcourir

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"; }
}

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!

Déclaration:
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