JavaScriptとは

表記はJとSが大文字になるので注意.

🔖AltJS

Alternative Javascript, 略してAltJS.

🔖コンパイルすることでJavaScriptに変換される言語.

📝ECMAScript

ECMAScript6, ES2015, ES6. 2015に発表された, JavaScriptのモダンな言語仕様.

ES Modules

ES6で策定されたモジュールの仕組み.

import/export

ES Module Syntax.

✅Node.jsをCommonJSからES Modulesに対応させるには?

📝Node.jsではすべてのモジュールはdefaultで🔧CommonJSのモジュール方式(require)を採用している. ES Module方式(import)に対応させるにはpackage.jsonに設定を書く.

{
  "type": "module",
  "main": "./main.js"
}

JavaScript プリミティブ

浮動小数点演算

🔧bn.js

BigInt, 大きな整数を扱うためのjsライブラリ.

https://github.com/indutny/bn.js/

整数から小数点を扱うには🔧decimal.jsなどの浮動小数点演算に特化したライブラリが必要. .toString で文字列にしてからDecimalクラスをつかう.

🔧decimal.js


📝任意精度演算

フォーマット文字列

浮動小数点の桁数指定(round)

var x = 5.0364342423;
print(x.toFixed(2));

JavaScript例外処理

JavaScript Error Object

  • name: エラーのタイプ
  • message: エラーメッセージを含む文字列
  • stack: 関数実行のスタックトレース

Error ObjectはすべてのError Objectのルートなので, さらにここから継承したObjectごとの属性がある.

Refs

エラーのリスト.

JavaScript 非同期処理

HTTP Client

🔧JavaScript Fetch API

Response Objects

Fetch API Error Handling

📝Promise(JS)

JavaScriptの非同期の基盤機能.

  • promise
    • resolve()
    • reject()
  • then: resolvedされたら呼ばれる.
  • catch: rejectedされたら呼ばれる.
  • finally: 結果に かかわらず呼ばれる.

resolve/then

reject/catch

  • rejectに文字列が渡されるとcatchの引数も文字列.
  • rejectでError オブジェクトやカスタムErrorオブジェクトが渡されるとcatchの引数もオブジェクト.

📝async/await(js)

📝Promise(JS)の糖衣構文.

JavaScript

ファイルIO

大容量ファイルをreadするTips

ベストプラクティス的には外部ライブラリをつかったstream方式なのだが, 実際に非同期readをやってみると容量の2倍のメモリを消費してしまう. これは一時変数と戻り値の2つなので, 処理のあと数十秒たつとgcによって一時変数が開放される. もっというと, 同期方式だとメモリとファイル容量のサイズは一致した.

  • 同期方式
  • 非同期方式(Promise)
  • 非同期方式(Stream)

Debug

🔧Devtools

🔖Webブラウザ組み込みのJavaScritデバッグ環境.

Chrome/Firefox/Edgeなどいろいろある.

Libraries

📝Next.js

<2024-12-28 Sat 17:47> Next.js、つかったことあるけど、いつ使ったんだか忘れた.

🤖Vercel v0

🔧bn.js

BigNum, 大きな数値をあつかうためのライブラリ.

🔗References

JavaScript - Wikipedia