JavaScript では enum 値は文字列で扱うものが多い
定数にいれた数値を使う C 系に多い方法はあんまりない
数値はわかりづらいし 数値も文字列もほぼ同じように扱える言語で数値にするメリットはほとんどない

JavaScript の標準の機能は 最近のものだと最初から文字列になってる
昔からあるものは数値のがいくつかあったけど 今では非推奨になって文字列版の代替が用意されたものが多め
はっきりどこか覚えてないけど提案段階もしくは普及前段階で数値の入った定数を渡す API だったものが 文字列で指定するものに変わったのもあったはず

◯ キーボード

昔は keyCode で Enter が 13 みたいな数字
今では keyCode は非推奨で code や key を使う
これには "Enter" みたいな文字列が入ってる

◯ DOMException

DOMException エラーオブジェクトでは code プロパティににエラーの種類を表す数値が入ってる
ただしこのプロパティは非推奨で name プロパティにエラーの名前が文字列で入ってるのでこっちを使う

◯ nodeType

Node のプロパティ nodeType にノードの種類(HTML 要素やテキストノードやコメントノード)が数値で入ってる
文字列の代替はなくて数値のみ
instanceof を使って判定もできる

◯ モード・タイプ

動作モードやタイプを指定する場合文字列で名前指定することが多い
多いのでまとめて

▶ IndexedDB ("readwrite" など)
▶ ShadowDOM ("closed" など)
▶ Canvas Context ("2d" など)
▶ Event Type ("click" など)
▶ Mutation Record Type ("childList" など)
▶ typeof ("number" など)
▶ fetch オプション credential, mode, redirect, ... ("omit", "cors", "follow", "no-cache" など)
▶ crypt オプション keytype, algorithm ("pkcs", "HMAC" など)
▶ Fullscreen Option navigationUI ("show" など)
▶ WebAnimaion playState ("paused" など)
▶ WebAnimaton オプション easing, fill ("linear", "forwards" など)
▶ XHR, fetch の HTTP メソッド ("GET" など)



JavaScript と書いたけどほとんどが ブラウザ固有の Web API のもの
この辺りは HTML 属性やタグなどが文字列だから合わせてるのもありそう

ただ ECMAScript 部分でも最近の機能は文字列のものもある

◯ Promise.allSettled

返り値の status プロパティが "fulfilled" または "rejected" の文字列

◯ Atomics.wait

返り値が "ok" や "timed-out"