質問するログイン新規登録

回答編集履歴

1

指摘をいただいたので、より明確な不推奨理由となるよう、文章を修正

2019/10/25 01:46

投稿

miyabi_pudding
miyabi_pudding

スコア9572

answer CHANGED
@@ -7,9 +7,11 @@
7
7
  これはとても便利な仕様かと思います。
8
8
 
9
9
  さて、
10
- **基本的には使っていい**と思います。
10
+ ~~**基本的には使っていい**と思います。~~
11
- ただし、JavaScriptは、その性質上、
11
+ ~~ただし、~~JavaScriptの性質上、
12
+ あまり使うことは推奨できないものかと思います。
13
+ (後述するが、チーム開発や、ライブラリとして公開するのには非常に不適切な仕様)
12
- ルートスコープに変数を置くと、非常にスパゲティコードになりやすく、
14
+ JavaScriptは、ルートスコープに変数を置くと、非常にスパゲティコードになりやすく、
13
15
  あまり推奨されないので、もしかしたら気にしなくいいかもしれませんが、
14
16
  変数を扱う上でその**ルート変数と区別がつきずらい**可能性が非常に高くなるかと思われます。
15
17
  例えば下記の例です。
@@ -42,5 +44,7 @@
42
44
  もちろんこの時点でスパゲティコードなので、あまりよろしくない例かと思いますが、
43
45
  実際にこの仕様を使うときは、このような現象が起きやすいので、
44
46
  HTMLでid指定している変数名は、js内では使わない、などの**チーム内で厳密にルール化**する必要がでてくるでしょう。
47
+ また、ライブラリとして公開するにも不適切かと思います。
48
+ なぜなら、変数として扱っているid名のHTML要素がわからず、ユーザーが定義しようとしている、HTMLや変数と名前が被る可能性が多分にあるからです。
45
49
 
46
50
  つまり、個人で開発して、他の誰にも引き継がないようなものであれば、別に気にしなくて使っていいと思うって話です。