回答編集履歴
3
誤字修正
test
CHANGED
@@ -1,69 +1,35 @@
|
|
1
1
|
### ECMAScript
|
2
|
-
|
3
|
-
|
4
2
|
|
5
3
|
既に指摘されている通り、ES3 まではドル記号(`$`)は機械的に生成されるコード中のみの使用を意図されていましたが、ES5.1 でこの規定は削除されました。
|
6
4
|
|
7
|
-
|
8
|
-
|
9
5
|
- [7.6 識別子 (Identifiers) - ECMA-262 3rd Edition](http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/7_Lexical_Conventions.html#section-7.6)
|
10
|
-
|
11
6
|
- [7.6 Identifier Names and Identifiers - ECMA-262 Edition 5.1](http://ecma-international.org/ecma-262/5.1/#sec-7.6)
|
12
|
-
|
13
|
-
|
14
7
|
|
15
8
|
従って、ES5.1の実装向けのコードであれば、`$` の使用に制限はありません。
|
16
9
|
|
17
|
-
|
18
|
-
|
19
10
|
### jQuery と prototype.js
|
20
11
|
|
21
|
-
|
22
|
-
|
23
12
|
`$` を使ったライブラリとして、jQuery と prototype.js があります。
|
24
|
-
|
25
|
-
ECMAScript 5 が策定
|
13
|
+
ECMAScript 5 が策定されたのは2009年12月ですが、jQuery 及び prototype.js はそれより以前にリリースされた為、当時の jQuery 及び prototype.js は **ES3 仕様に違反**していました。
|
26
|
-
|
27
14
|
ES5 仕様で「ドル記号(`$`)は機械的に生成されるコード中のみの使用を意図される」の規定は削除され、それらのライブラリは ES 仕様に準拠したものとなりましたが、仕様が後追いで策定したと思われる状況です。
|
28
|
-
|
29
|
-
|
30
15
|
|
31
16
|
### 結局、ドル記号($)は使っても良いのか
|
32
17
|
|
33
|
-
|
34
|
-
|
35
18
|
ES3 策定当時に書いたコードには、「機械的に生成されるコード」を区別する為に `$` を使用したコードがあると思われます。
|
36
|
-
|
37
19
|
仮にそのコード中に jQuery のコードが混在した場合、「機械的に生成したコード」と「jQuery のコード」の区別が難しくなります。
|
38
|
-
|
39
20
|
従って、「後方互換性を考慮するならば、`$` は使用しない方が良い」という結論になります。
|
40
21
|
|
41
|
-
|
42
|
-
|
43
22
|
jQuery オブジェクトを区別する意図があるならば、「変数名の先頭に `j` を付ける」でも良いわけですから、`$` に拘る必要はないと考えます。
|
44
|
-
|
45
23
|
最も、公式の jQuery ドキュメントでは jQuery オブジェクトの変数名に `$` を付けるテクニックが紹介されている為、jQuery 作者の主張を尊重するなら そちらに従う人もいるでしょう。
|
46
|
-
|
47
|
-
|
48
24
|
|
49
25
|
- [The jQuery Object | jQuery Learning Center](http://learn.jquery.com/using-jquery-core/jquery-object/)
|
50
26
|
|
51
|
-
|
52
|
-
|
53
27
|
最終的には「旧来のESの流れ」と「jQuery 独自の文化」のどちらを尊重するか、という二択になると思われます。
|
54
28
|
|
55
|
-
|
56
|
-
|
57
29
|
私としては **$ はjQueryだけに予約された文字ではない**ので、「jQuery === $」という固定観念から付ける変数名は健全な名前ではないと思います。
|
58
|
-
|
59
30
|
jQuery と prototype.js で `$` が衝突したトラブルも「我こそが jQuery(prototype.js)である」という慢心から生まれた必然の出来事だと考えます。
|
60
|
-
|
61
31
|
`$element` という名前は jQuery オブジェクトではない全く別のオブジェクトであっても良いのです。
|
62
|
-
|
63
32
|
**$ はコードを書いた人が名前の統一性を考慮して命名すべき**であって、一つのライブラリに過ぎない jQuery が占有して良い名前ではないと私は思います。
|
64
|
-
|
65
33
|
(余談ですが、Underscore.js や Lodash も同じ理由で好ましくない名前(`_`)だと思っています。)
|
66
34
|
|
67
|
-
|
68
|
-
|
69
35
|
Re: EndoDaijiro さん
|
2
markdown修正
test
CHANGED
@@ -60,7 +60,7 @@
|
|
60
60
|
|
61
61
|
`$element` という名前は jQuery オブジェクトではない全く別のオブジェクトであっても良いのです。
|
62
62
|
|
63
|
-
|
63
|
+
**$ はコードを書いた人が名前の統一性を考慮して命名すべき**であって、一つのライブラリに過ぎない jQuery が占有して良い名前ではないと私は思います。
|
64
64
|
|
65
65
|
(余談ですが、Underscore.js や Lodash も同じ理由で好ましくない名前(`_`)だと思っています。)
|
66
66
|
|
1
jQueryオブジェクトの変数名への言及
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
ECMAScript 5 が策定sれたのは2009年12月ですが、jQuery 及び prototype.js はそれより以前にリリースされた為、当時の jQuery 及び prototype.js は **ES3 仕様に違反**していました。
|
26
26
|
|
27
|
-
ES5 仕様で「ドル記号(`$`)は機械的に生成されるコード中のみの使用を意図される」の規定は削除され、それらのライブラリは ES 仕様に準拠したものとなりましたが、
|
27
|
+
ES5 仕様で「ドル記号(`$`)は機械的に生成されるコード中のみの使用を意図される」の規定は削除され、それらのライブラリは ES 仕様に準拠したものとなりましたが、仕様が後追いで策定したと思われる状況です。
|
28
28
|
|
29
29
|
|
30
30
|
|
@@ -38,11 +38,11 @@
|
|
38
38
|
|
39
39
|
従って、「後方互換性を考慮するならば、`$` は使用しない方が良い」という結論になります。
|
40
40
|
|
41
|
-
jQuery オブジェクトを区別する意図があるならば、「変数名の先頭に `j` を付ける」でも良いわけですから、`$` に拘る必要はありません。
|
42
41
|
|
43
42
|
|
43
|
+
jQuery オブジェクトを区別する意図があるならば、「変数名の先頭に `j` を付ける」でも良いわけですから、`$` に拘る必要はないと考えます。
|
44
44
|
|
45
|
-
最も、公式の jQuery ドキュメントでは jQuery オブジェクト
|
45
|
+
最も、公式の jQuery ドキュメントでは jQuery オブジェクトの変数名に `$` を付けるテクニックが紹介されている為、jQuery 作者の主張を尊重するなら そちらに従う人もいるでしょう。
|
46
46
|
|
47
47
|
|
48
48
|
|
@@ -50,7 +50,19 @@
|
|
50
50
|
|
51
51
|
|
52
52
|
|
53
|
-
最終的には「旧来のES
|
53
|
+
最終的には「旧来のESの流れ」と「jQuery 独自の文化」のどちらを尊重するか、という二択になると思われます。
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
私としては **$ はjQueryだけに予約された文字ではない**ので、「jQuery === $」という固定観念から付ける変数名は健全な名前ではないと思います。
|
58
|
+
|
59
|
+
jQuery と prototype.js で `$` が衝突したトラブルも「我こそが jQuery(prototype.js)である」という慢心から生まれた必然の出来事だと考えます。
|
60
|
+
|
61
|
+
`$element` という名前は jQuery オブジェクトではない全く別のオブジェクトであっても良いのです。
|
62
|
+
|
63
|
+
`$` はコードを書いた人が名前の統一性を考慮して命名するべきであって、**一つのライブラリに過ぎない jQuery が占有して良い名前ではない**と私は思います。
|
64
|
+
|
65
|
+
(余談ですが、Underscore.js や Lodash も同じ理由で好ましくない名前(`_`)だと思っています。)
|
54
66
|
|
55
67
|
|
56
68
|
|