---
# System prepended metadata

title: Untitled
tags: [JSPrimer輪読会]

---

## 【第23回】JSPrimer輪読会

###### tags: `JSPrimer輪読会`

- [開催概要](https://hackmd.io/OsL28Q9fS7Wa2alu3gkoaw)
- [JSPrimer輪読会 ノートまとめ](https://hackmd.io/@NRLooQz8RrqbPmaSYWZceg/r1S4p-5Ds)

------

## 2023\-3\-23(木)

### 連絡事項や確認・相談
- 

### タイムキーパー
-  maimu

### 読んだところ
- 関数宣言と巻き上げ の前まで
### 次回
- 関数宣言と巻き上げ　から
### 自由に使う共有スペース

### 各自の疑問点や気づき、学んだこと
- maimu
    - `{}` でスコープが区切られるため、ブロックが異なれば同じ変数を `let` や `const` で定義できる
    - `var` はブロックを無視するため要注意！
    - 変数の寿命は短くする

- @fuwa
    - 変数の定義の検索のステップは、今いるスコープ→一つ外側のスコープ→… という感じで順番に行われていく
    - `var`で変数を定義すると、変数の宣言部分と代入部分の場所が変わってしまうという意図しない挙動(巻き上げ)が発生してしまう
    - `var`ではなく`const`を使っていきましょう

- まっきー
    - ブロックチェーンでなくスコープチェーンというらしい
    - console.logに似せた左向き三角(◀︎)表示があることを知った（Rubyで変数代入すると返り値があるみたいなもの？？）
    - varを見かけたら要注意⚠️

- はるまき
    - グローバルスコープで変数を定義すると影響範囲が広くなりすぎるので、変数は利用するスコープ内に定義するようにする。
    - varは使わない！

- nekonote-civ
    - var は不思議な巻き上げが起こる！？(そもそもこれからのコードでは使わないべき)
    - Ruby でも JavaScript でも、限定されたスコープ内に納めるべき(変数の寿命)
    - JSPrimer のページはリサイズで先頭に飛ばされるので注意する

- @AntiSatori 
    - スコープチェーンてメソッドチェーンとなんだか仕組みが似ていますね。
    - スコープごとに変数をメモリ管理する環境(ハッシュテーブル？)が作られていると思うんですけど、どういう仕組みになっているのか気になりました。

- toke
   - 今回は初めて参加したという事もあり、全体的な空気感を見ていました。
   - JavaScriptの言語仕様をきちんと理解しようとする勉強会である事が分かりました。
   - varは使ってはいけないが、昔のプログラムを理解するために、理解だけ必要な事が分かりました。

### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK)

- maimu
    - 明日ですが、20時から別用があるため5分早く終わらせます🙇🏻‍♀️
    - 「サブスクマスター」というサービス名で自作サービスを考えていたのですが、2年ほど更新されていないブログで同じタイトルがあり、サービス名を変更するか悩み中です。
    - サブスクの今月と来月のお支払日をGoogleカレンダーと同期させるサービスなのですが、前月のお支払日がGoogleカレンダー上に残らないのって不便でしょうか・・・？

- まっきー
    - 明日は今年初の出社・・・やだな〜（夜は用事あるので輪読会は参加できません😭）
        - 出社は体力使いますよね・・・💪

- @fuwa
    - めっちゃ久しぶりの輪読会！
    - 今日はシン・仮面ライダーを観てきました
        - 気になる・・・

- nekonote-civ
    - この輪読会では初の読み上げ！
    - 夜型になりすぎて、他の人と生活リズムが合いません。。。
    - Rails コメントの課題難しい🤔

- toke
    - 初参加できた事自体が一番の収穫でした。
    - 雰囲気が良い事が分かった！

- @AntiSatori
    - StoryBookのためのReactコンポーネントを作る解説書くことになったのでドキュメントや解説沢山読み直してます。Reactの説明自体も多くしたほうが良さそう。
    - https://github.com/fjordllc/bootcamp/issues/6351

## 2023\-3\-24(金)

### 連絡事項や確認・相談
- 来週は木金共に輪読会はお休みになります🙇🏻‍♀️

### タイムキーパー
-  maimu

### 読んだところ
- メモリ管理の仕組み　の前まで
### 次回
- メモリ管理の仕組み から
### 自由に使う共有スペース

### 各自の疑問点や気づき、学んだこと
- はるまき
    - 即時実行関数はグローバルスコープの汚染を防ぐために使われていたが、今は他の方法でできるので使わない。

- haruguchi
    - 即時実行関数やクロージャなどもtop-level awaitとかclass構文とかが出てきて出番が少なくなってきたけど、シュッと自分の確認用のコード書くときなど結構重宝する
    - JSのスコープは歴史的経緯があるので覚えるの大変だ

- @AntiSatori 
    - 関数の定義時に変数の参照先が決まるのが静的スコープ、関数の呼び出し時に呼び出し元のスコープを元に変数の参照先が決まるのが動的スコープ。
    - 識別子と変数の関係はメッセージとメソッドの関係のよう。呼び出し元と定義する側の視点の違いのような感じ。

- @fuwa
    - functionによる関数宣言でも実は巻き上げが発生する。でも巻き上げられた関数を呼び出せるので問題にはならない
    - JSは変数や関数の参照先は静的スコープで決まる

- maimu
    - 関数宣言も `var` と同様に巻き上げがされるけれど、関数が実行されるため `var` のような問題にはならない。
        - ただ、関数を `var` に代入すると `var` の巻き上げが起きるため、注意する。
    - 静的スコープ、動的スコープ、レキシカルスコープとか用語がややこしい。
        - レキシカルスコープは外側を見にいくみたいなぼんやりイメージの理解なため復習します・・・！

### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK)

- はるまき
    - 輪読会の裏側で実行していたテストがやはり落ちていた…。読み解き方も分からないのでペアプロ依頼だそうかな。
        - 明日とかなら私も見れるかもです👀
            - お願いしたいです！！　夕方〜夜ごろとかご都合いかがでしょうか（18時〜）

- @fuwa
    - まだ3月なのに卓上扇風機氏のお世話になっています
    - サウナに行きたいのですが、最近雨続きで悲しいです〜

- maimu
    - 前髪が伸びてきて邪魔です！

-　@haruguchi-yuma 
    -　お金払って健康が買えるなら書いたいと思ったけど、それってジムいったりすることかもと思った。
        -　食生活大事ですかね👀
        -　💪

- @AntiSatori
    - 落ちるテストの直し方知りたいので自分も参加してみたい
    - スコープとメモリ管理のことちゃんと知りたいのでコンパイラの勉強いつかちゃんとしたいです。
    - https://craftinginterpreters.com