いくつ知ってる?変数名のルール7選 [2分でわかるプログラミングの小ネタ]


良い変数名が思いつかない…みんなどうやって変数名をつけてるんだ?

変数名は基本、名詞や形容詞を組み合わせることが多いよ。(辞書で単語を調べることもよくある)
でも、いくつか変数名のルールを知っておくと、より変数名をつけやすくなるんだ!
変数名をつけるルールを知ることで
- 変数名のアンチパターンがわかる
- 余計なことを考えずに命名できる
ため、変数名をスムーズに決めやすくなります。

ただ、プロでも変数名は迷うんだ。全てがルールに当てはめれないから、地道に辞書を引いて調べることも大切だよ。
この記事を読めば「プロっぽい変数名がつけれる」。そんな内容にしたので、ぜひ最後まで読んでくださいね。
そもそも、なぜ変数名のルールがあるのか?

いや、変数名のルールとか知らなくてもよくない?
それより気になるあの子のことが知りたいんだけど。

変数名のルールを知ることは「プロが自然とやってること」を知ることなんだ。
仕事でプログラミングをするなら、絶対に身につけておきたい知識だよ!
変数名のルールがあることによって
- どんな意味の変数か?が理解しやすい
- コードに統一感が生まれる
などのメリットがあります。
また、これから解説するルールは仕事では「常識」レベルです。日本人にとっての日本語、インド人にとってのカレーぐらい普通のことです。

変数名のルールを知ってれば、先輩が書いたコードを理解するスピードも上がるんだ!
注意点ですが、変数名のルールは会社やプロジェクトによって異なります。なるべく一般的なものを書きますが、プロジェクトの方針を優先してくださいね。
実務でよく使う 変数名のルール7選
覚えておきたい〇〇ケース(キャメルケースとか…)

いきなり難しそうだな…Youtubeみよっかな。

待て待て。〇〇ケースはプログラミングにおいて鉄板知識。
そこまで難しくないから、一緒に見ていこう
〇〇ケースとは「変数名の書き方」を表したもので、リンゴジュースを例にすると
appleJuice
は「小文字 + 大文字」だよね。最初が小文字、後の単語は大文字…を「キャメルケース」というよ!
そして、〇〇ケースでよく使うのは以下の4つです↓
- キャメルケース(camelCase)
- パスカルケース(PascalCase)
- スネークケース(snake_case)
- アッパースネークケース(UPPER_SNAKE_CASE)
()に実際の使用例を書いた通り、小文字or大文字 + 「_」をつけるか?によって判別できます。
// キャメルケース
appleJuice
// パスカルケース(大文字で初めて_なし)
AppleJuice
// スネークケース(単語の区切りに_を入れる)
apple_juice
// アッパースネークケース(全て大文字 + _をつける)
APPLE_JUICE

なんでそんなに多くの書き方があるんだ?結局どれを使ったら良いのかわからないよ…

使うケースは言語(プロジェクト)によって違うんだ。
ただ、一般的を以下に書いてみたので参考にしてね!
一般的な使用例
結論を先に書くと、以下の使い方が一般的です↓
// キャメルケース/スネークケースは変数(言語によって変わる)
const appleJuice = 🍎
const apple_juice = 🍎
// アッパースネークケースは定数
const APPLE_JUICE = 🍏
// パスカルケースは「クラス」
class AppleJuice {
...
}
なので、変数で使うのは
- キャメルケース(camelCase)
- スネークケース(snake_case)
のどちらかになります。(以降の例ではキャメルケースで書きます)
ちなみに…スネークケースの由来は「_」が地を這うヘビに似てるからです。では、キャメルケースの由来は何でしょうか?
正解は大文字のこぶがラクダを連想させるからです。(キャメルはラクダって意味)

由来を知っておくと、記憶に残りやすいね!
余談だけど、プログラミングで使うライブラリとかは名前の由来を調べると思わぬヒントが転がってたりするのでおすすめだよ!
boolean値(is/has/can…)
boolean値(true/false)を表す変数名はルールが多く存在します。ここでは最低限知っておきたいのを中心に解説します。
結論、boolean値が入ってるのでよく使われる命名は以下です↓
- is~ (最も汎用的)
- has~ (「持ってる」的なニュアンス)
- can~ (できるか?って意味の時に使う)
- show~ (表示/非表示を表す)
- exists (存在するか?)
実際に変数名を書いてみるとこんな感じ↓
// りんごか?
isApple
// りんごはタネを持ってるか?
hasAppleSeeds
// そのりんごは食べれるか?
canEatApple
// Webサイトとかで...りんごに関するツールチップを表示するか?
showAppleTooltip
// りんごは存在するか?
appleExists

なるほど、なんか色々あってわかりずらいよ…

そうだね。でも厳選してるだけで、もっとあるよ。笑
ただ、迷ったらisを使ってればなんとかなるんだ(苦笑)
なので、booleanが入る変数名にはisを使うのが一般的ぐらいは覚えておきましょう!
日付を表す(at/on)
次は日付(Date)系の値が入る変数名のルールを解説します。日付が入る変数名には末尾にat/onをつければOKで、
- at→日時
- on→日付
で使い分けます。
実際に変数を書いてみると以下です↓
// 有効期限日
const expiredAt = '2025-05-01 12:00:00'; // 時間も含む
const expiredOn = '2025-05-01';
また、日付のat/onは「~された」を意味する過去分詞(~ed)ともよくセットで使われるので、覚えておくと良いです。(とりあえず、過去形にして違和感なければOK笑)

なんでat/onを末尾につけるのがルールなの?

英語の前置詞のルールに従ってるからだよ。ちなみに、英語でatはある一地点、onは範囲ってイメージなんだ。

なるほど。だから
- atは具体的な時間(一地点)
- onは日付でより広い範囲
を表すってことだね。
変数名を省略しない
変数名は省略するとわかりにくくなることが多いです。そのため、慣れないうちは変数名を省略せずに単語を全て書くのをおすすめします。
具体的には
const appleCnt = 10;
const fp = '/var/app.js';
などのコードがあったときに、cntって何?fpって何?って思いますよね。
それよりも、以下のコードの方が読みやすいです↓
const appleCount = 10;
const filePath = '/var/app.js';
意味が明確になって、単語は多くてもわかりやすくなったと思います。最初の省略の意味は
- cnt→count
- fp→filePath
だったわけですが、書いた人以外は省略されるとわかりません。
なので、初心者の方は特に変数名を省略せずに書くことをおすすめします。

もちろん、例外もあるよ!
少し上級テクニックですが、「変数のスコープが狭い時」は省略して一つの単語で書くことが多いです。
// pressは機械を使ってりんごを搾るイメージ
const appleJuice = apples.map((a) => press(a))

いや、変数のスコープってなんぞや。狙撃されるのか?

変数のスコープとは「変数の寿命」とも言われて、変数が使われてる範囲を指すよ!
変数のスコープを説明すると1つ記事が書けるので、興味が湧いた方は以下を読んでくださいね↓
numberは基本使わない
変数名でnumberは基本使わないです。

「数」って意味を使う時にnumberって使わないの?例えば、appleNumber(りんごの数)とかで使えそうだけど…

numberは抽象的すぎることが多いんだ。もっと具体的にどんな数か?を表した方が読みやすいよ。
例えば、appleNumberではなくappleCountにした方が読みやすいね。
- count(数)
- length, size(配列の要素数など)
- total(合計値)
- index(配列の位置)
このように、状況に合わせて「数」を適切な名前で書けば読みやすいコードになります。

じゃあ、どんな時にnumberを使ったら良いの?
numberを使うのに適切なケースは「番号」という意味で変数名を使いたい時です。具体的には「電話番号」「部屋番号」などです。

ただ、初心者のうちはnumberは細かいので意識しなくても良いかもだよ!
初級→中級にレベルUPしたい時などに意識するのがおすすめ。
ループの一時変数(i)

ループの一時変数…読めるのに内容が入ってこない…
ループの一時変数とは以下indexのように、処理内で進行状況を示すために使う変数です↓
const fruits = ["apple", "banana", "cherry"];
// indexが一時変数で、配列の位置(0, 1, 2...)が入ります
const uppercased = fruits.map((fruit, index) => {
return `${index + 1}: ${fruit.toUpperCase()}`;
});
console.log(uppercased);
// ["1: APPLE", "2: BANANA", "3: CHERRY"]
この一時変数はindexでも良いのですが、省略してiにしてることが多いです↓
// before
const uppercased = fruits.map((fruit, index) => {
return `${index + 1}: ${fruit.toUpperCase()}`;
});
// after
// i 一文字で書いてもOK
const uppercased = fruits.map((fruit, i) => {
return `${i + 1}: ${fruit.toUpperCase()}`;
});
ちなみに、すでにiが使われてたらj, k…と別の変数を使っていきます。しかし、j, kなど一文字の変数が多くなると読みづらいので使わないことが多いです。
使ってない変数(引数)の時は_をつける
こちらも関数が関わってますが、使ってない変数(引数)には_を先頭につけることが多いです。
const fruits = ['apple', 'banana', 'cherry'];
// fruitは使わないので_fruitにしてる。もしくは_だけでもOK
fruits.forEach((_fruit, index) => {
console.log(`No.${index + 1}: ${fruits[index]}`);
});
// 出力
// No.1: apple
// No.2: banana
// No.3: cherry
出現頻度は少ないですが、お作法として知っておくと「こいつ…やるな」って思われます。

使ってない引数は削除したら良いのでは?

その通りだよ!使ってない引数は削除したほうが良いよ。
でも、1つ目の引数は使わずに2つ目の引数を使いたい時があったりするんだ。
まとめ 変数名のルールを使って読みやすいコードを書こう
いかがでしたか?変数名のルールを使えばコードが読みやすくなります。
この記事で紹介したテクニックは脱初心者レベルなので少し難しい内容もありました。今すぐは理解できなくても普段のコーディングで1つでも取り入れてくださいね。
これまで書いたことをまとめると、変数名のルール7つは
- スネークケース・キャメルケースを使い分ける
- booleanはis/has/can…などを使う
- 日付を表す(at/on)
- 変数名を省略しない
- numberは基本使わない
- ループの一時変数はiを使う
- 使ってない変数(引数)の時は_をつける
でした。

booleanはisを使うのは簡単なので、取り入れてみてね。
それでは!