麦茶にメイプルシロップを入れて飲むのが最近のプチ贅沢。エディターの若栁です。
ほんのりと上品な甘さになるので、一度お試しください。
エディターが学ぶ初めてのプログラミング第8回は、JavaScriptの変数の書き方を調べてみました。
英語は「人名や国名の最初は大文字」「曜日の単語は最初が大文字」「theを最初につける場合は〜」などのルールがあります。
プログラミングも言語ごとに「命名規則」という名前をつけるときルールがあるので、今回はJavaScriptの変数の命名規則を調べていきます。
JavaScriptの変数で使える文字・記号
- 文字:Unicode文字(※)
- 記号:ドル($)とアンダースコア(_)
※Unicode文字(ゆにこーどもじ)とは※ 世界で使われている全ての文字を、共通の文字集合体で使えるようにしよう!と定められた、文字コードの業界規格のこと。一覧はこちら。(Wikipediaより)
Unicodeには日本語も含まれているので、日本語の変数も使えます。
1 |
var ん = 1; |
こういうコードも成立するのですが、変数名だけ日本語にすると、入力する時に面倒だったり、漢字の変換ミスも出てきます。
コードの中から情報を探しやすい、というメリットもありそうですが、個人的には積極的に日本語を使うことはなさそうです。
以下、注意点を2つほど。
注意点1:名前の1文字目に、数字は使えません
1 2 3 4 |
setting:OK _setting:OK setting01:OK 01setting:NG |
注意点2:ハイフン(-)は使えません
第6回に出てきた演算子としての役割を持っているからです。
1 2 3 4 5 |
start_slot→OK start-slot→NG stop_slot→OK stop-slot→NG |
注意点3:予約語は使えません
もともとJavaScriptで、関数やメソッドとして使用用途が決められている言葉(予約語)は、変数には使えません。
今までのブログで出てきたところで言うと、ifやfor、do、elseなどなど。一覧はこちらを参考にしてください。
JavaScriptで大文字小文字は区別されるか
JavaScriptでは、アルファベットの大文字小文字は区別されます。
1 2 3 |
var timerID; var timerId; var TimerId; |
この3つの変数は、それぞれ別のものとして区別されます。
関数やメソッドも同様で、大文字小文字を区別するので、1字違うだけで動作しません。今までのスロットゲームから例にあげると、次のようになります。
1 2 3 4 5 6 7 |
OK:addEventListener NG:AddEventListener //Addではなくadd OK:getElementById NG:GetElementById //Getではなくget |
書き方の種類
名前をつける時の書き方もいくつかあって、そのうちの一つがキャメルケースです(リンク先:Wikipedia)。ひとかたまりの変数や関数の中に、大文字小文字が混在している様子がラクダ(=キャメル)のように見えるところから命名されたそうです。さらにこのキャメルケースにも2パターンあって、
- アッパーキャメルケース(Upper Camel Case)繋げた単語の先頭全てが大文字
- ローワーキャメルケース(lower Camel Case)繋げた単語の先頭だけは小文字、それ以外は大文字
「JavaScript」という言語名の書き方は、Upper Camel Case。
addEventListenerやgetElementByIdの書き方は、lower Camel Caseです。
このルールが理解できている今なら、スロットゲームで使った「timerID」という変数名はつけません。
「timerId」か「TimerId」の、どちらかを使います。
その他、スネークケース(xxx_xxx_xxxのように、アンダースコアで繋ぐ書き方)や、チェインケース(xxx-xxx-xxxのように、ハイフンで繋ぐ書き方)もあります。JavaScriptは最初の部分でも書いたようにハイフンは使えないので、自然と、キャメルケースかスネークケースでの書き方になります。参考サイトに記載した、Google JavaScript Style Guideでは
- クラス名はアッパーキャメルケース
- メソッド名はローワーキャメルケース
のように定義されています。
以上、今回はJavaScriptの変数の命名規則について調べてみました。
参考サイト