JavaScriptの変数名で最初の文字に「$」を付けるのは《本当に》アリなのか?


  • 公開:
  • 更新:
  • 編集:
概要 ▶ Rolled dollar by MoneyBlogNewz前回の「jQueryで簡単な画像のスライドショー《slideswitchを勝手に解説》」という記事でまずimgタグで「active」というclassが付いている要素を$activeという変数に代入します。(なんで$を頭に付けているのかは謎…)jQueryで簡単な画像のスライドショー《slideswitchを勝手に解説》と、変数名の頭に$を
Rolled dollar
Rolled dollar by MoneyBlogNewz


前回の「jQueryで簡単な画像のスライドショー《slideswitchを勝手に解説》」という記事で

まずimgタグで「active」というclassが付いている要素を$activeという変数に代入します。(なんで$を頭に付けているのかは謎…)
jQueryで簡単な画像のスライドショー《slideswitchを勝手に解説》

と、変数名の頭に$を付けているのはなぜなのかと書きました。

謎のままにしていると気持ちが悪いので(笑)、調べてみました。


検索してみる

ググると、いくつかのページで「変数名は英字または_で始める」と書いてありますが、検索ワードを変えてさらにググったらこんなページが。
$を識別子に使うことに特に文法上の問題はありません。

例えばPerlの場合は「$ + 変数名」で単純変数を表します
JavaScriptでの変数名で最初の文字が$とかありますか? - Yahoo!知恵袋

そういえば確かにperlでは$から変数名を書きますね。忘れていた。
そういう書き方がスタンダードな言語もあるんだった。


だから特に変ではないですね。


Wikipediaから

とはいっても、「本当はダメだけど、慣習でperlみたいに$を頭に付ける人がいるからブラウザーの実装としては動くようにしてあります」という事だと嫌なので、もう少し信頼のおけそうなWikipediaの関連リンクからJavaScriptについて調べてみました。


Mozillaのページには以下の様に記載されていました。(JavaScriptは元々Netscape Communicationsが開発したので)

A JavaScript identifier must start with a letter, underscore (_), or dollar sign ($); subsequent characters can also be digits (0-9). Because JavaScript is case sensitive, letters include the characters "A" through "Z" (uppercase) and the characters "a" through "z" (lowercase).
Values, variables, and literals - MDN

つまり変数名(※)は文字(AからZとaからz)・アンダースコア・ドルマークのいずれかで始めなければいけないと書かれています。


※identifierは 厳密には「変数名」ではないが便宜上こう書いておく。関数もあるわけで…。


なので原典とも言えるMozillaのページで「$」を使っても良いと書いてあるので、変数名の最初に「$」を使うのは仕様上、何の問題もないということがわかりました。安心して使えますね。


以上、簡単でありましたが調べてみた結果です。
それでは。
カテゴリー:

このページをぜひシェアしてください