2

関数スコープとブロックスコープについて読んでいました。そして、Javascript には関数スコープがあることを学びました。

今考えてみると、私が知っているすべての言語には関数スコープがあります。ブロックスコープを持つ言語を本当に知りません。ブロックスコープを持つ言語を教えてください。

ブロックスコープを持つ言語では、ループブロックの外側の for ループのインデックス値にどのようにアクセスするのでしょうか? ブロックスコープを持つ利点は何ですか?

ありがとう。

4

2 に答える 2

1

ALGOL 60 は最初にブロック スコープを使用したもので、その後に多くのC, C++, C#...etcが続きました。

このウィキペディア ページのブロック スコープセクションを確認してください。

ブロックスコープを持つ利点

ブロックは主に、if、while、for ループなどの制御フローに使用されます。これらの場合、ブロック スコープは、変数のスコープが関数の実行フローの構造に依存することを意味します。ただし、通常、ブロック スコープを持つ言語では、変数スコープをきめ細かく制御できるようにすることだけを目的とした「裸の」ブロックを使用することもできます。たとえば、補助変数をブロックで定義してから使用し (関数スコープの変数に追加するなど)、ブロックの終了時に破棄するか、ループ内で使用される変数を初期化するブロックで while ループを囲むことができます。一度だけ初期化する必要があります。

于 2013-09-07T12:31:15.903 に答える