t_hazawaの日記

株式投資とWebエンジニアリングのブログです。株式投資の目次は→です。 https://t-hazawa.hatenablog.com/entry/2021/02/12/220933

JavaScriptの継承や歴史や型の大事さなどを勉強した

経緯

  • FlMMLonHTML5 に prを出そうとした
    • 出した
  • 自分の JavaScript 能力があまりにも低かったので、勉強することにした
  • uhyo_さんの「JavaScript 中級者になろう」講座がとても品質高かった
  • その他にも何個か読んだ

細部

  • webpackで引数が消滅していたのは、wrapperが間に挟まっているからだった (wrapper の 方でも引数をいじらないといけなかった)

勉強

uhyoさん編

JSの歴史編

  • JSの歴史を知りたくなったので JavaScript入門 - とほほのWWW入門 を読む
    • javascriptとは、netscape communications社が開発したプログラミング言語です

    • c言語を祖先として生まれた言語

    • javascriptは元々livescriptという名前で開発されていましたが、javaが流行しはじめたことや、netscape社とsun社が技術提携したこともあり、javascriptと名前を変えたようです。

    • とほほさんは2019年も更新されてるのね
    • ES4が放棄になったので、 ES3(1999年)→ ES5 (2009年)がだいぶ開いてる
    • ES2015(ES6, 2011年)→ ES7(ES2016, 2016年) も結構あいてる そのあとは毎年更新
    • 各バージョンで追加された機能が列挙されてて素晴らしい
      • このリンク先を読んでいけばES博士になれそう そのうちやりたい
  • JavaScript が勝ち残った理由を知りたくなった
  • ウェブブラウザ上で動作するプログラミング言語において、なぜJavaScriptだけが生き残ることができたのでしょうか? - Quora
    • 非同期イベントループが画期的とのこと。 確かに、他のライバルは全部読み込んだ枠の中だけで世界が完結してた
    • スマホ時代の前は jsよりflashの方が…確かに人気あったかも。
    • 今ではjavaはサーバサイドでしか見かけなくなりましたが、最初はフロントエンド用のテクノロジーでした。

    • 同じ時期にnetscape社はブラウザ上で動作するlivescriptというスクリプト言語を開発していました。しかし、javaが大人気だったため、このlivescriptをjavascriptという名前に変更しました。

    • microsoftmosaicというブラウザを買収しこれを基にinternetexplorerを開発していきます。

    • このmosaicは、netscape社起業前にnetscape社の開発陣が作った本家webブラウザです。mozzilaの語源はここにあります。

    • IEは htmlを厳密に書かなくてもレイアウトが崩れないというのが受けたようです。

    • activexも一時期よく使われましたが、脆弱性の問題もあり、皆使わなくなっていきます。 - プログラミング言語(何でもできてしまう)で脆弱性は致命的だなぁ

    • JavaScriptFlash 前の時代、各社勝手に拡張してたらしい
    • 多くの古い仕様が残っているというのも事実です。 - これがJSの難しさの原因っぽい

    • c#windowsアプリを作るのと比較すると遥かに効率よくユーザーインターフェースが作成できます。

    • 現在ではプログラム言語としても優秀なのでどんどん使いましょう。 - 過去が悪いのね (腑に落ちた)

読みたかったものを読む編

またJSのことを知るぞ編

型編 (TypeScript編)

  • 型ってそんなに大事なの? 調べたい 2021/09/03 2:06
  • 敗北者のTypeScript - Qiita
    • A4判 36P相当 (28600文字)
    • フロントエンドは、ユーザ側に環境があるので、実際に死ぬ言語が何個も出てきた(Silverlight, ActionScript などなど) …ので、煽り調で注目を得て生き残っていかねばならないのだと思う
    • 型があると色々なエラーを避けられるんだね
    • 安全ということをプログラマが手作業で示すか、機械的な保証を強制するか の違いみたい
    • typescript時代においては、ちゃんと型で表現できるようにプログラムを設計するということもtypescriptのスキルの一つですね。

    • コード例が多くて分かりやすい
    • 型があることによる安全性がわかってきた
    • ここまでで紹介したany,as,!くらいがtypescriptが持つ代表的な危険性です - 分かりやすい

    • TypeScriptの強力な型システム
      • type MyObjWithName = MyObj & { name: string; };

  • TypeScript って誰が 作ったの?
  • TypeScript - Wikipedia
    • マイクロソフトが 2012年に初めて出した
    • javascriptに対して、省略も可能な静的型付けとクラスベースオブジェクト指向を加えた厳密なスーパーセット

    • jscript.netとtypescriptはよく似ている

    • プリミティブ型のためのアノーテーションはnumber、boolean、stringである。
      - プリミティブ型はこの3つしかないのかあ

    • 型アノーテーションは別個の「宣言ファイル」に外出しすることが出来る (C++のheader ファイルみたいなもの) jQuery とかを TypeScriptにできる(ヘッダーファイルみたいなもので型情報をつけることで) - 知らなかった

declare module arithmetics {
    add(left: number, right: number): number;
    subtract(left: number, right: number): number;
    multiply(left: number, right: number): number;
    divide(left: number, right: number): number;
}

まとめ

  • JavaScriptのことを (uhyoさんの中級者になろうを全部読んで)ちゃんと知りたいとおもった

時間まとめ

  • 9/1~9/3, 9/8~9/13 の 9日 (9時間) これにかけた
  • でも知らなくて、今後というか本来必要なことを知れたと思うのでいいかな