関数スコープとブロックスコープについて読んでいました。そして、Javascript には関数スコープがあることを学びました。
今考えてみると、私が知っているすべての言語には関数スコープがあります。ブロックスコープを持つ言語を本当に知りません。ブロックスコープを持つ言語を教えてください。
ブロックスコープを持つ言語では、ループブロックの外側の for ループのインデックス値にどのようにアクセスするのでしょうか? ブロックスコープを持つ利点は何ですか?
ありがとう。
関数スコープとブロックスコープについて読んでいました。そして、Javascript には関数スコープがあることを学びました。
今考えてみると、私が知っているすべての言語には関数スコープがあります。ブロックスコープを持つ言語を本当に知りません。ブロックスコープを持つ言語を教えてください。
ブロックスコープを持つ言語では、ループブロックの外側の for ループのインデックス値にどのようにアクセスするのでしょうか? ブロックスコープを持つ利点は何ですか?
ありがとう。
ALGOL 60 は最初にブロック スコープを使用したもので、その後に多くのC, C++, C#
...etcが続きました。
このウィキペディア ページのブロック スコープセクションを確認してください。
ブロックスコープを持つ利点
ブロックは主に、if、while、for ループなどの制御フローに使用されます。これらの場合、ブロック スコープは、変数のスコープが関数の実行フローの構造に依存することを意味します。ただし、通常、ブロック スコープを持つ言語では、変数スコープをきめ細かく制御できるようにすることだけを目的とした「裸の」ブロックを使用することもできます。たとえば、補助変数をブロックで定義してから使用し (関数スコープの変数に追加するなど)、ブロックの終了時に破棄するか、ループ内で使用される変数を初期化するブロックで while ループを囲むことができます。一度だけ初期化する必要があります。