コードが読みやすくなる!JavaScript命名規則ガイド
大平 恵美
大平 恵美
2025-07-31
JavaScriptを学び始めたばかりの時、変数や関数の名前に迷うことはありませんか?実は、何気なく付けた名前が、意図しないエラーの原因になることがあります。この記事では、JavaScriptが内部で使っている「内部関数」や「予約語」、そして`type`のような一般的な単語を避けるべき理由を分かりやすく解説します。安全で分かりやすい命名のコツを学び、誰にとっても読みやすいコードを書くための一歩を踏み出しましょう。

「JavaScriptの内部関数と重複する命名をしない」というアドバイスは、とても重要です。ここでは、JavaScriptの内部関数にはどのようなものがあるか、なぜ名前の重複を避けるべきかを分かりやすく解説しますね。

なぜ名前の重複を避けるべきか?

JavaScriptには、あらかじめ便利な機能を持った「内部関数(ビルトイン関数)」がたくさん用意されています。

もし、あなたが作った関数に内部関数と同じ名前を付けてしまうと、JavaScriptはどちらを呼び出せば良いか混乱してしまいます。その結果、意図しない動作をしたり、エラーが発生したりする原因になります。これを「名前の衝突(競合)」と呼びます。


代表的なJavaScriptの内部関数

すべての内部関数を覚える必要はありません。「こんな機能があるんだな」と知っておき、必要になった時に調べる、というスタンスで大丈夫です。

代表的なものをいくつかご紹介します。

どこからでも使えるグローバル関数

プログラムのどこからでも直接呼び出せる基本的な関数です。

関数名 説明
parseInt() 文字列を整数に変換します。
parseFloat() 文字列を浮動小数点数(小数点を含む数値)に変換します。
isNaN() 値が数値ではない(Not-a-Number)かどうかを判定します。
isFinite() 値が有限数かどうかを判定します。
encodeURI() URI(URL)として安全に使えるように文字列を変換(エンコード)します。
decodeURI() encodeURI()で変換された文字列を元に戻します。

データ型ごとの便利な関数(メソッド)

特定のデータ型(文字列、配列など)に対して使うことができる、便利な機能です。データ.メソッド名() のように使います。

文字列 (String)

文字列を操作するための関数です。

  • slice(開始位置, 終了位置): 文字列の一部を切り出します。
  • split(区切り文字): 文字列を区切り文字で分割し、配列にします。
  • replace(置換前の文字, 置換後の文字): 文字列を置換します。
  • indexOf(検索する文字): 文字が最初に出現する位置を返します。
  • includes(検索する文字): 文字が含まれているかどうかを true / false で返します。
  • toUpperCase() / toLowerCase(): 大文字/小文字に変換します。
配列 (Array)

配列の要素を操作するための関数です。

  • push(要素): 配列の末尾に要素を追加します。
  • pop(): 配列の末尾の要素を取り除きます。
  • forEach(関数): 各要素に対して繰り返し処理を行います。
  • map(関数): 各要素を変換して新しい配列を作成します。
  • filter(関数): 条件に合う要素だけを集めて新しい配列を作成します。
  • find(関数): 条件に合う最初の要素を見つけます。
  • join(区切り文字): 配列の要素を連結して一つの文字列にします。
数学的な計算 (Math)

数値計算でよく使われる機能が集まっています。

  • Math.random(): 0以上1未満のランダムな小数を生成します。
  • Math.floor(数値): 小数点以下を切り捨てます。
  • Math.ceil(数値): 小数点以下を切り上げます。
  • Math.round(数値): 四捨五入します。
  • Math.max(数値1, 数値2, ...): 最も大きい数値を返します。
  • Math.min(数値1, 数値2, ...): 最も小さい数値を返します。

学習のポイント ✨

  • 全部暗記しない!: 最初は「こんなことができるんだ」と眺めるだけで十分です。
  • 調べながら進める: 「文字列を分割したいな」と思ったら「javascript 文字列 分割」のように検索する癖をつけましょう。
  • MDNを活用する: 困ったときは MDN Web Docs というサイトが非常に信頼性が高く、おすすめです。
  • エディタを頼る: VSCodeなどの高機能なエディタは、内部関数を入力しようとすると候補を出してくれたり、説明を表示してくれたりします。

コーディングを続けていけば、自然とよく使う関数は覚えていきます。焦らず、楽しみながら学習を進めてくださいね!応援しています!

type という名前がなぜ良くないのか、具体的に解説します。


typeのようなシンプルな命名を避ける理由

type は関数名ではありませんが、多くの場面で**特別な意味を持つ「プロパティ名」**として使われるからです。

1. HTMLの要素(DOMオブジェクト)で使われている

Webページ上の多くの要素は type というプロパティを持っています。

  • <input>タグ: input要素のtypeは、それがテキストボックス("text")なのか、ボタン("button")なのか、チェックボックス("checkbox")なのかを示します。
  • <button>タグ: button要素のtypeは、それが送信ボタン("submit")なのか、リセットボタン("reset")なのかを示します。

もし、あなたが作った変数やオブジェクトのプロパティに type という名前を付けると、これらのHTML要素が持つ type と混同し、コードを読む人が混乱したり、バグの原因になったりします。

// 例:こういうコードは混乱を招く
const button = document.querySelector('button'); // HTMLのボタン要素を取得

// このtypeはボタンの種類("submit"など)を指すのか、
// それとも自分で定義した別の「タイプ」なのか、分かりにくい
let type = "user_action"; 

if (button.type === type) { // 意図しない比較をしてしまう可能性がある
  // ...
}

2. APIのデータやライブラリで頻繁に使われる

外部のサービスからデータを取得したり、React/Vueなどのライブラリを使ったりすると、データの内容や種類を示すために type というプロパティ名が非常によく使われます。

// APIから返ってくるデータや、ライブラリで扱うデータの例
{
  "id": 123,
  "type": "article",  // ← このようにデータの種類を示すためによく使われる
  "title": "JavaScriptの命名規則"
}

【重要】避けるべき名前の種類

以下の3種類の名前は変数名や関数名として使うのを避けるのが安全です。

種類 説明 具体例
予約語 JavaScriptが文法として使うために予約している単語。使用するとエラーになります。 if, for, function, class, const, return, typeof
組み込みオブジェクト名 JavaScriptが最初から用意しているオブジェクトや関数の名前。上書きすると元々の機能が使えなくなります。 Object, Array, String, Number, Date, Math, JSON
よく使われるプロパティ名 typeのように、様々なオブジェクトで共通して使われる名前。特に注意が必要なもの。 name, id, value, data, target, key, message

解決策:より具体的に命名する

シンプルな単語を避け、**「何のための」**ものなのかが分かるように命名するのが良い習慣です。

  • typeuserType, eventType, documentType
  • datauserData, productData
  • iduserId, itemId
  • nameuserName, fileName

このように少し具体的にするだけで、コードが格段に読みやすくなり、予期せぬバグも防げます。経験を積むにつれて自然と身についていくので、今は「シンプルな名前は避けて、具体的に書く」ということを意識するだけでも大丈夫ですよ!