7月23日 学習記録

実施内容

  • progate

    JavaScript V

    第1章:ファイルを分割しよう

    第2章:パッケージを使おう

本日学習したこと

  • 1:ファイルの分割について

    本格的な開発では、1つのファイルにすべての処理を書いてしまうと、ソースコードの可読性、仕様変更時の修正等の点で効率が悪い。

    そのため、いくつかのファイルに分割してコーディングするのが一般的である。

    しかし、そのままファイルを分割しただけでは、他ファイルのクラス、変数等を使用できない為、エラーが出る。

    それを解決する為の手段、「インポート」、「エクスポート」について、以下で解説する。

  • 2:エクスポートについて

    エクスポートとは、クラスを他のファイルでも扱えるようにすることである。

    クラス定義の後に、「export default クラス名」と記述する。

    次のように、Animalクラスをエクスポートすることで、animal.jsファイル以外のファイルで扱えるようになる。

  • 3:インポートについて

    あるファイルでエクスポートされたクラスを、そのファイルで使用するためにはインポートを行う。

    ファイルの先頭で、「import クラス名 from "ファイル名"」と記述する。(ファイル名の拡張子は省略可)

    次のようにすることで、animal.jsファイルでエクスポートされたAnimalクラスを、dog.jsファイルで使用できるようになる。

  • 4:クラス以外のエクスポート、インポートについて

    エクスポート、インポートはクラスだけでなく、文字列、数値、関数などについても行える。

    記述の仕方は、クラスの時と同じ。

    以下のようにすることで、sample1.jsファイルの定数textをsample2.jsファイルで使用できる。

  • 5:デフォルトエクスポートについて

    前述した「export default」の部分は、デフォルトエクスポートと呼ばれそのファイルがインポートされると同時に、「export default 値」の値がインポートされる。

    したがって、エクスポート時とインポート時のクラス名や定数名が異なっていたとしても、正しい値が取得できる。

    しかし、デフォルトエクスポートは1ファイルにつき、1つしか使用できない。

    複数の値をエクスポートしたい場合は、口述する名前付きエクスポートを行う必要がある。

  • 6:名前付きエクスポートについて

    名前付きエクスポートは、エクスポート時にdefaultを書かずに、名前を{}で囲んで記述する。

    インポート時は、「improt {値の名前} from "./ファイル名"」と記述する。

    ※名前付きエクスポートは複数の値を設定できる。その場合は値を「,」で区切って記述する。

  • 7:パッケージについて

    世の中には、誰かが作成したプログラムの集まりが「パッケージ」という形で公開されている。

    パッケージを自分のプログラムに組み込むことで、様々な機能を扱うことができる。

    ここでは、一部のパッケージについて示す。

    chalk readline-sync
    コンソール出力の文字に色を付ける コンソールに値を出力する

    パッケージを使用する為にはクラスや変数と同じくインポートを行う。

    「import 定数名 from "パッケージ名"」と記述すれば、自分のプログラムでパッケージが使用できる。

今日のエラー

クラスをインポートする際に、上位のディレクトリを参照するために「../」と記述するべき箇所を誤って「./」としてしまった為、エラーが出た。

f:id:ryo1024:20200725181539p:plain

疑問に思ったこと

コンソールに出力するために、「console.log」と記述しているが「console」というのも、パッケージの一種か?