Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 「関数とスコープ」における誤字脱字の訂正など #1594

Merged
merged 2 commits into from
Feb 20, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions source/basic/function-scope/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ measureTask(doHeavyTask);

コードの量が増えていくにつれ、人が一度に把握できる量にも限界がやってきます。
そのため、人が一度に把握できる範囲のサイズに処理をまとめていくことが必要です。
この問題を解決するアプローチとして、変数の参照できる範囲を小さくすることや処理を関数にまとめるという手法がよく利用されます
この問題を解決するアプローチとして、変数を参照できる範囲を小さくすることや処理を関数にまとめるという手法がよく利用されます
Copy link
Collaborator

@azu azu Feb 18, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

を を の2重助詞になっていますね。

自分は でも読めるかなーという感じがしています。(音として読んだときに、 が重なると重たい感じがしてるので、 にしてる気もしました。厳密な助詞というよりリズムを優先してる感じ。多分 を飛ばしてもこれは読めるので。)

変数が参照できる範囲を だと一番矛盾がないのですが、意味が異なって聞こえる(主語が逆転している感覚がある)

変数を参照できる範囲を小さくすることや / 処理を関数にまとめるという手法がよく利用されます。

の2つなので、を がかかる位置が増えると 主語が読みにくく感じました。
変数を小さくすること ではないので。

の 以外のやつでいいものがあるといいんですが、おそらく助詞じゃなくて文や単語を少し変えないといけない気がします。

変数のスコープを とか別の単語になる気はしますが、一見して意味がわかる単語は難しいものになる気はしています。(スコープはなんか少し曖昧な感覚)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@azu ありがとうございます。(最初に少し補足しておけばよかったのですが)こちらを変更した理由について説明しますと、確かに「を」が二重になってはしまうのですが、

  • この文が含まれているコラムのタイトルが「変数を参照できる範囲を小さくする」である
  • このコラム内の他の文でも「変数を参照できる範囲を小さくする」という言い回しが二度出てくる

ため、他と合わせる意味でここを「を」にしていました(あとは単純に、「を」が連続することについて、特に違和感を抱いていませんでした)。

確かに azu さんが言われているように「の」のままとしても日本語ネイティブであれば普通に読めるとは思いますので、戻してもいいかなとも思うのですが、上に書いたように他の箇所では「を」の言い回しが使われているため、一貫性の観点からやはり戻さなくてもいい気もしています(ここを変えるとすると他の箇所も変える必要が生じるように思います)。

すみませんが、以上を踏まえた上でもう一度ご意見をうかがってもよいでしょうか🙏

Copy link
Collaborator

@azu azu Feb 18, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

や で並列にしてるのが多分良くないんだと思います。
(を がかかる位置が増えてしまってる)

  • 認知負荷が高い問題を解決するには
  • [アプローチ] 変数を参照できる範囲を小さくする必要がある
  • [具体例] 具体的な方法として、関数にまとめるという手法がよく利用される

というのが言いたいことになってる気がするので、並列に並べないように文を直すのが正解かなと思います。

変数を参照できる範囲を小さくすること の具体が 関数にまとめる なので並列じゃない感じもします。

コードの量が増えていくにつれ、人が一度に把握できる量にも限界がやってきます。
そのため、人が一度に把握できる範囲のサイズに処理をまとめていくことが必要です。
具体的には、処理を関数にまとめることによって、変数を参照できる範囲を小さくする方法?がよく利用されます。

など、文自体を直すのが良いと思います。
ちょっとまだ微妙な文なので、アプローチと具体が逆なのかな

コードの量が増えていくにつれ、人が一度に把握できる量にも限界がやってきます。
そのため、人が一度に把握できる範囲のサイズに処理をまとめていくことが必要です。
この問題を解決するアプローチとして、処理を関数にまとめるという手法がよく利用されます。

だけの方がスッキリはしますね。
セクションタイトルを強調したいかどうかという別の話になりますが。

コードの量が増えていくにつれ、人が一度に把握できる量にも限界がやってきます。
そのため、人が一度に把握できる範囲のサイズに処理をまとめていくことが必要です。
この問題を解決するアプローチとして、変数を参照できる範囲を小さくするために、処理を関数にまとめるという手法がよく利用されます。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます!ここはコラムの最後の段落でありまとめとしての役割もあるため、セクションタイトルを再度強調することに意味があると考え、最後に提示いただいたものをそのまま適用しました。


## 関数スコープとvarの巻き上げ {#hoisting-var}

Expand Down Expand Up @@ -411,7 +411,7 @@ var_x = "varのx";
次に、`let`と`var`で異なる動作を見ていきます。

`let`では、変数を**宣言する前**にその変数を参照すると`ReferenceError`の例外が発生して参照できません。
次のコードでは、変数を宣言する前に、変数`x`を参照したため`ReferenceError`となっています。
次のコードでは、変数を宣言する前に変数`x`を参照したため`ReferenceError`となっています。
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ここは明確な誤りではないですが、読点が不要であると感じられたため削除しました。

エラーメッセージから、変数`x`が存在しないからエラーになっているのではなく、実際に宣言した行より前に参照したためエラーとなっているのがわかります。[^1]

{{book.console}}
Expand Down Expand Up @@ -857,7 +857,7 @@ const createCounter = () => {
// countUpとnewCountUpはそれぞれ別のincrement関数(内側にあるのも別のcount変数)
const countUp = createCounter();
const newCountUp = createCounter();
// 参照してる関数(オブジェクト)は別であるため===は一致しない
// 参照している関数(オブジェクト)は別であるため===は一致しない
console.log(countUp === newCountUp);// false
// それぞれの状態も別となる
console.log(countUp()); // => 1
Expand Down