Heim > Web-Frontend > js-Tutorial > Wie verhalten sich Funktionsdeklarationen auf Blockebene im strengen und nicht strengen ES6-Modus?

Wie verhalten sich Funktionsdeklarationen auf Blockebene im strengen und nicht strengen ES6-Modus?

DDD
Freigeben: 2024-12-11 12:44:11
Original
610 Leute haben es durchsucht

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

Funktionssemantik auf Blockebene in ES6

Funktionsdeklarationen auf Blockebene wurden in ES6 eingeführt, was Fragen zu ihrer Semantik aufwirft.

Kernsemantik

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

Verhalten von Weberweiterungen

In Browsern Weberweiterung Die Semantik gilt für Funktionen auf Blockebene im nicht-strikten Modus:

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

Klärung des strikten Modus

„Strikter Modus“ bezieht sich im Kontext von Funktionen auf Blockebene auf die Striktheit der Funktion in dem der Block mit der Funktionsdeklaration vorkommt. Das folgende Beispiel zeigt dies:

// Non-strict surrounding code

{
    function foo() { "use strict"; }
}
Nach dem Login kopieren

Dieser Code gilt als „strenger Modus“ für die Funktion foo.

Das obige ist der detaillierte Inhalt vonWie verhalten sich Funktionsdeklarationen auf Blockebene im strengen und nicht strengen ES6-Modus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage