---
# System prepended metadata

title: Untitled
tags: [JSPrimer輪読会]

---

## 【第34回】JSPrimer輪読会

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

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

------

## 2023\-6\-1(木)

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

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

### 読んだところ
- 非同期処理 の前まで
### 次回
- 非同期処理 から
### 自由に使う共有スペース
### 各自の疑問点や気づき、学んだこと
- maimu
    - `throw` 文はあらゆるオブジェクトを例外として投げられる
        - 文字列とかも渡せる
        - 基本的にErrorオブジェクトのインスタンスを投げることを推奨されている
            - スタックトレースがえられなくなってしまうため
    - SyntaxErrorは、実行時のエラーをキャッチする`try...catch`文ではcatchできない
    - 同期処理の間?に重い処理があり、次の処理が実行できないことをブロッキングという

- @fuwa
    - `console.error`でメッセージとスタックトレースをコンソールに出力できるのでべんり
    - 非同期処理まだちゃんとわかっていないのでがんばろうと思います

- まっきー
    - eval関数でParse時のエラーを無理やりランタイムエラーにできるテクニック
    - JavaScriptはシングルスレッド？？
        - https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API/Microtask_guide/In_depth　ここら辺読むと理解できるかも？
            - 🙌　読んでみます！
    - この章は非同期処理プラクティスのときに一度ひとりで読んだのに結局非同期処理が何のためにあるのかピンとこなかった、のでしっかりここで学びたい

- @haruguchi
    -  JSの組み込みのerrorオブジェクト何があるかあんまり知らないや

- dawa
        - 同期処理はひとつの処理が終わるまで次の処理は行わず、非同期処理では複数の処理を同時に行える。

-

### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK)
- @fuwa
    - ほとんど電話で聞けなかった。。
    - 就活に備えてこれから美容院に行ってきます。なんと半年ぶり

- まっきー
    - さいきんOKストアで売られるようになったA2ミルクを毎週爆買いして爆飲みしています

- maimu
    - そろそろ読みます詐欺を続けているパダワンさんのZENNを読む時かもしれない・・・（非同期と仲良くなりたい）
    - YouTubeとChatGPTがあると数学の勉強が捗ります！

- dawa
    - オライリーのJavaScript第7版という本を買ってみました。分厚くて文章が多いです。 
        - 自分も持ってます！🦏
        - 積んでます。。

- LEF（代読お願いします）
    - 咳が治まるまで就活を完全にストップしていて、ヒマジンに……
    - 謎の八頭身ピヨルドさん
        - https://twitter.com/komagata/status/1663489834718228480?s=20
    - 叔父さんからファミコンを貰いました🎮
    - 新しく出版されるオライリーのTypeScript本が気になっています。
        - [O'Reilly Japan - 初めてのTypeScript](https://www.oreilly.co.jp/books/9784814400362/?utm_source=feed&utm_mediun=referral&utm_content=new_book)
        - +1
        - 後半にある型パズル気になる

- haruguchi
    - Rubyのハッシュがわからん。データ構造に詳しい方おられぬか？
        - 梅本さん・・・？
        - Ruby のしくみに書いてありますよ、たしか
    　    - 何！？挿入時の計算量が知りたいO(1)って書いてあるのになんか遅い時があって、、、
            - ハッシュ値と、ハッシュ値ごとの連結リストがあったはずなので、連結リストの挿入に時間がかかってるのかもしれませんね。どんな連結リストが使われていたかは分からないですが...。取得は O(1)　だと思いますが、挿入はどうなんでしょう？ いやほんとうかな...
            何か見た時は参照,削除,挿入O(1)って書いてあった気がするけど、ちょっと確かめるところからですね。
            
## 2023\-6\-2(金)

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

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

### 読んだところ
- Promiseインスタンスの作成 の前まで
### 次回
- Promiseインスタンスの作成 から
### 自由に使う共有スペース
```javascript!
function asyncf() {
    return new Promise((resolve, reject) => {
        if (Math.random() > 0.5) {
            resolve('なんかの値')
        }　else {
            reject(new Error('失敗の理由'))
        }
    })
}

asyncf()
    .then((value) => console.log(value)) // 成功時はvalueに解決値が入る(resolveに渡した引数)
    .catch((error) => console.error(error)) // 失敗時にはエラー理由が入る
```
### 各自の疑問点や気づき、学んだこと

- まっきー
    - JavaScript自体はシングルスレッドだけど、ブラウザでWeb Worker APIを使えばマルチスレッドにできる
    - Reactでさんざんコールバック関数を書かされたおかげ？か、コールバック関数の処理がだいぶ読みやすくなった気がする。成長？！
    - 非同期処理の外から例外を知るための方法として、PromiseとAsync関数は生まれたことを知れて面白かった
        - どっちかというとcallback hellが嫌すぎて作ったような気が、、、(不確実)
            - やっぱりそうなんですね（笑）コールバック地獄・・
- maimu
    - JSはシングルスレッドなため、ブラウザで`setTimeout` が登録された際などは、ブラウザの環境で秒数のカウントが行われ、同期処理が完了した後に非同期処理が実行される
        - 同期処理の間に非同期処理が挟まれることはない
        - 同期処理でブロッキングが発生すると非同期処理の実行自体が遅れる場合もある
    - `Promise`はいまいちわかってないので復習します・・・ 

- umizaru
    - 非同期処理は必ず同期処理が終わった後に実行される。また、非同期処理と同期処理はメインスレッドで実行される。
    - setTimeout関数は非同期の処理を登録しているだけであって、実際に実行している訳ではない。
    - Promiseは「お風呂湧けたよ」のメタファーで理解する。Promise:「お風呂湧くまで部屋で待ってて〜」、resolve:「お風呂湧けたよ〜」、reject：「お風呂の栓抜けてた！」

- @fuwa
    - 非同期処理の実行は、同期処理が全て終わってから。(同期処理が終わる前でできるのは登録だけ)
    - `try...catch` 構文では非同期的に発生した例外をキャッチすることはできない。コールバック関数内に書く必要がある。(自作サービスでやらかしたかも。。。)

- dawa
    - 非同期処理は同期処理と同じメインスレッドで実行されるので同期処理の影響を受ける。
    - setTimeout関数は処理を登録するのみで、同期処理が終わったらその登録された処理が呼び出される。

-　haruguchi
    -　同期処理に非同期処理が割り込むことはない
    -　ランダムで失敗するようにコード改良しておきました。
    -　非同期処理はいろんな概念が絡み合ってできているのでむずい。


### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK)
- maimu
    - ルービックキューブで完全一面が作れるようになりました！！
    - CS50を見ているので、地味にC言語の基本を勉強する感じになっています👶🏻

- @fuwa
    - Ruby Silver対策にRExをやってみたのですが、34点でしたww
    - 明日は雨の中お外でチラシを配るバイトをする予定なのでげっそりしてます :coffee:
        - ファイトです！風邪にお気をつけて。
            - ありがとうございます〜！
- まっきー
    - 先日のRubyKaigiのLT資料に「（RUNTEQ生が）釣れたｗｗｗ」とか書いた資料を直さずそのまま外出ししてしまい、伊藤さんにご指摘いただきました・・・🙏
    - 内向けの資料でも外に出すことを意識すること大事！
    - speakerdeckのURL気をつけないと変なのになってる人がいた。注意！

- @haruguchi
    - 雨すごい
        - 高知がすごいみたいです。

- dawa
    - 睡眠が足りてないので昨日から眠いです。

- umizaru
    - 6月24日（土）にFBC向けのもくもく会をしようと思っています〜。ご都合よろしければぜひ！今週末には周知せねば。
            - 何時ごろを予定していますか？
            - 14-18＠新橋周辺を予定してます！（その後任意でご飯会です）
            - オフラインですね、楽しそうです！！
            - 行けたらいきたいです！
            - チャリで行くわ！(20時間あったら、、、)
