首頁 >web前端 >js教程 >區塊級函數宣告在 ES6 嚴格和非嚴格模式下的行為如何?

區塊級函數宣告在 ES6 嚴格和非嚴格模式下的行為如何?

DDD
DDD原創
2024-12-11 12:44:11620瀏覽

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

ES6 中的區塊級函數語義

ES6 中引入了區塊級函數聲明,引發了有關其語義的問題。

核心語意

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

Web 擴充行為

中瀏覽器中,Web擴展語意適用於非嚴格模式下的區塊級函數:

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

嚴格模式說明

區塊級函數上下文中的「嚴格模式」是指包含函數宣告的區塊所在的函數的嚴格性。以下範例示範了這一點:

// Non-strict surrounding code

{
    function foo() { "use strict"; }
}

此程式碼被視為函數 foo 的「嚴格模式」。

以上是區塊級函數宣告在 ES6 嚴格和非嚴格模式下的行為如何?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn