ホームページ > ウェブフロントエンド > jsチュートリアル > ブロックレベルの関数宣言は ES6 厳密モードと非厳密モードでどのように動作しますか?

ブロックレベルの関数宣言は ES6 厳密モードと非厳密モードでどのように動作しますか?

DDD
リリース: 2024-12-11 12:44:11
オリジナル
636 人が閲覧しました

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 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート