質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

4回答

21969閲覧

javaScriptで変数名に$マークを付けるメリットは何かありますでしょう?

EndoDaijiro

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

1グッド

4クリップ

投稿2017/06/02 02:16

編集2017/06/02 02:18

JQueryが普及している為、JavaScriptに$がある変数が登場すると可読性が下がると思っていますが、ソース内でみかけることがあります。参考になる記事を調べてみたのですが、目立つ。以外に何か使う理由はあるのでしょうか?
理由:PHP書いてる人がわかりやすくしたくて、つけちゃうなごり? など。

【参考】JavaScriptの変数名で最初の文字に「$」を付けるのは《本当に》アリなのか?
http://dtp.jdash.info/archives/51933758.html

宜しくお願い致します。

miyabi-sun👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

ECMAScript

既に指摘されている通り、ES3 まではドル記号($)は機械的に生成されるコード中のみの使用を意図されていましたが、ES5.1 でこの規定は削除されました。

従って、ES5.1の実装向けのコードであれば、$ の使用に制限はありません。

jQuery と prototype.js

$ を使ったライブラリとして、jQuery と prototype.js があります。
ECMAScript 5 が策定されたのは2009年12月ですが、jQuery 及び prototype.js はそれより以前にリリースされた為、当時の jQuery 及び prototype.js は ES3 仕様に違反していました。
ES5 仕様で「ドル記号($)は機械的に生成されるコード中のみの使用を意図される」の規定は削除され、それらのライブラリは ES 仕様に準拠したものとなりましたが、仕様が後追いで策定したと思われる状況です。

結局、ドル記号($)は使っても良いのか

ES3 策定当時に書いたコードには、「機械的に生成されるコード」を区別する為に $ を使用したコードがあると思われます。
仮にそのコード中に jQuery のコードが混在した場合、「機械的に生成したコード」と「jQuery のコード」の区別が難しくなります。
従って、「後方互換性を考慮するならば、$ は使用しない方が良い」という結論になります。

jQuery オブジェクトを区別する意図があるならば、「変数名の先頭に j を付ける」でも良いわけですから、$ に拘る必要はないと考えます。
最も、公式の jQuery ドキュメントでは jQuery オブジェクトの変数名に $ を付けるテクニックが紹介されている為、jQuery 作者の主張を尊重するなら そちらに従う人もいるでしょう。

最終的には「旧来のESの流れ」と「jQuery 独自の文化」のどちらを尊重するか、という二択になると思われます。

私としては $ はjQueryだけに予約された文字ではないので、「jQuery === $」という固定観念から付ける変数名は健全な名前ではないと思います。
jQuery と prototype.js で $ が衝突したトラブルも「我こそが jQuery(prototype.js)である」という慢心から生まれた必然の出来事だと考えます。
$element という名前は jQuery オブジェクトではない全く別のオブジェクトであっても良いのです。
$ はコードを書いた人が名前の統一性を考慮して命名すべきであって、一つのライブラリに過ぎない jQuery が占有して良い名前ではないと私は思います。
(余談ですが、Underscore.js や Lodash も同じ理由で好ましくない名前(_)だと思っています。)

Re: EndoDaijiro さん

投稿2017/06/04 02:47

編集2023/02/01 00:54
think49

総合スコア18164

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

JQueryが普及している為、JavaScriptに$がある変数が登場すると可読性が下がると思っています

自分が書く場合は、逆に「jQueryオブジェクトを含む変数」を$で始めることで、わかりやすくなるようにしています。

TypeScriptなどを使いだせば「変数に何が入っているか」も型で管理できるようになるのですが、純粋なJavaScriptではそうも行かないので、変数名で管理することもあります。

投稿2017/06/02 02:26

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

2000年までの仕様(ECMAScript 262 3rd edition)には、「機械的に生成されたコードでのみ使用」と書いてあります。

http://www-archive.mozilla.org/js/language/E262-3.pdf

The dollar sign is intended for use only in mechanically generated code.

この文はのちの 5th edition ではなくなっているのですが。
おそらく、prototype.js やら jQuery などで広く使われてしまったので制限を撤廃したのだろうと思います。
こういう経緯があり気持ち悪いので、個人的には積極的には使わないかなと思います。

投稿2017/06/02 02:59

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

javascriptにおいて$は単なるもじですからね

var a$b$c$$$$="x"; console.log(a$b$c$$$$);

ユーザーが好き勝手つかっていい分、むしろ可読性を落とすので
基本的にはシンボリックなものなので「あえてつかわない」という
自分なりのルール付をした方がいいでしょう
(言語によって先頭の$や末尾の$に特別な意味を与えることがあるので)

もちろん「つかっている人がいる」可能性は常に頭においておく
必要があります。

投稿2017/06/02 02:41

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問