ES6 中引入了區塊級函數聲明,引發了有關其語義的問題。
Non-strict mode | Strict mode |
---|---|
Hoisted and visible outside of the block | Not visible outside of the block |
中瀏覽器中,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中文網其他相關文章!