JavaScriptとは
表記はJとSが大文字になるので注意.
- 📝Node.js: サーバサイド実行環境.
🔖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
- https://mikemcl.github.io/decimal.js/
- GitHub - MikeMcl/decimal.js: An arbitrary-precision Decimal type for JavaScript
- https://github.com/piczmar/shadow-cljs-learnui/blob/master/src/decimals/core.cljs
フォーマット文字列
浮動小数点の桁数指定(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
- fetch API: 組込み関数
- node-fetchh: fetch APIをカスタマイズ.
- axios: 有名な外部ライブラリ.
🔧JavaScript Fetch API
Response Objects
-
methods
- .json: json Objectに変換.
-
properties
- status
- statusText
- response
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)の糖衣構文.
- awaitが返すのはresolvedされた実際の値.
- 💡CLJS/JS Promise(async/await) Interop
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、つかったことあるけど、いつ使ったんだか忘れた.
🔧bn.js
BigNum, 大きな数値をあつかうためのライブラリ.
🔗References
👉Related
- tags. 🔖ProgLang