Funktionsdeklarationen auf Blockebene wurden in ES6 eingeführt, was Fragen zu ihrer Semantik aufwirft.
Non-strict mode | Strict mode |
---|---|
Hoisted and visible outside of the block | Not visible outside of the block |
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 |
„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"; } }
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!