JavaScriptは消滅すべきだったよな (767レス)
JavaScriptは消滅すべきだったよな http://mevius.5ch.net/test/read.cgi/tech/1320761689/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
474: デフォルトの名無しさん [sage] 2013/02/01(金) 02:48:13.83 言語とコンテンツをごっちゃにしてねえか? JSは言語としては面白い。 配列すら存在しない、辞書と関数だけで全てを表現するストイックさにはシビれるものがある。 この愉快で面白くて異常に尖った言語を、 誰もが使うウェブブラウザで動かすのがナンセンスだって言ってる。 そのせいで、開発者じゃない一般の利用者ですら、JSの存在を意識せざるを得ない。 結果、利用者に「IE バージョンxx以上でご覧ください」って要求する現状はおかしいだろ。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/474
475: デフォルトの名無しさん [sage] 2013/02/01(金) 05:41:30.31 >>473 景気良い時に作られた笹子トンネルは 杜撰な施工で後の世代に禍根を残した http://mevius.5ch.net/test/read.cgi/tech/1320761689/475
476: デフォルトの名無しさん [sage] 2013/02/01(金) 06:11:55.68 ストイックどころかvar無しでグローバルとか変態な変数スコープとか変にカジュアルにした 部分がとても嫌。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/476
477: デフォルトの名無しさん [sage] 2013/02/01(金) 06:28:47.54 var無しは外側の関数スコープの宣言を探しに行くだけで、即グローバルになるわけじゃないぞ クロージャとかを考えるとこの仕様のほうが素直だと思うけどね http://mevius.5ch.net/test/read.cgi/tech/1320761689/477
478: デフォルトの名無しさん [sage] 2013/02/01(金) 07:26:47.89 varをmyにするセンスよりマシだけど localとかprivateで良かった起臥す http://mevius.5ch.net/test/read.cgi/tech/1320761689/478
479: デフォルトの名無しさん [sage] 2013/02/01(金) 08:08:34.77 varはスコープの内側で有効な変数を宣言するものであって、 ローカルな変数を宣言するっていう意味のものでは無いと思うのだよね なのでlocalやprivateは不適切に思える グローバルスコープでvar宣言すれば、それは一番外側にあるグローバルスコープの内側で有効な、 つまりグローバル変数になるわけだ この辺を全部varだけで済ますのが>>474の言うようなストイックなとこだと思う http://mevius.5ch.net/test/read.cgi/tech/1320761689/479
480: デフォルトの名無しさん [sage] 2013/02/01(金) 08:46:35.54 varみたいな修飾子をつけると影響範囲が広くなる、ならまだ解るのだけれども「つけ忘れると意図せず 影響範囲が広くなる」と言うのは関心の分離という意味では筋の悪いデザインだと思う。 つけ忘れる可能性があるものは何時か必ずつけ忘れるのだから。 var一つで済ますのは良いのだけれども、使い方が逆なんだよね。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/480
481: デフォルトの名無しさん [sage] 2013/02/01(金) 09:30:27.03 >>477 外を見に行くのはともかく見つからない場合はデフォで変数を一番大きなスコープに作成 する必要が合ったのが不具合きわまりない。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/481
482: デフォルトの名無しさん [sage] 2013/02/01(金) 10:59:55.98 >>477 ん?グローバルになるんじゃないの? グローバルにならないのなら、どんなスコープになるの? http://mevius.5ch.net/test/read.cgi/tech/1320761689/482
483: デフォルトの名無しさん [sage] 2013/02/01(金) 13:50:13.30 >>477 varって「ローカル変数を定義する」って説明されるし、現実にはその通り使うけど、 実際は「自分より上位のスコープにある、同名の変数を隠蔽する」機能なのよね。 「変数は暗黙に定義される」って軽量言語らしい所と、 クロージャが使えることを両立させようとすると、 素直っちゃあ素直な作りなんだよな。 純粋に言語として見れば、JSは面白いんだがなぁ…… http://mevius.5ch.net/test/read.cgi/tech/1320761689/483
484: デフォルトの名無しさん [sage] 2013/02/01(金) 14:35:09.01 >>483 varは、同じ変数が上位のスコープにあったらそれを隠蔽するという仕様なだけで、 > 実際は「自分より上位のスコープにある、同名の変数を隠蔽する」機能 というのは変だぞ。 > ローカル変数を定義する こっちが本筋の機能でしょ。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/484
485: デフォルトの名無しさん [sage] 2013/02/01(金) 15:57:37.43 別にvarが無くたって変数が暗黙的に定義できてクロージャが使える言語なんていくらでもあるでしょ。 >>483は曲解過ぎる。 で JavaScriptのvar無しでの振る舞いの仕様がウンコであることはstrictモードの存在自体が証明している。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/485
486: デフォルトの名無しさん [sage] 2013/02/01(金) 17:29:09.66 >>485 varみたいなものが無い場合、 上位のスコープで使ってるかもしれない名前の変数をローカルで使いたいときはどうするの? デフォルトでは上位のスコープを見に行かないとか? http://mevius.5ch.net/test/read.cgi/tech/1320761689/486
487: デフォルトの名無しさん [sage] 2013/02/02(土) 07:20:59.56 >>484 悪いが仕様を語るならまず仕様を読め。 「同じ変数が上位のスコープにあったらそれを隠蔽するという仕様」とやらで alert(a) var a = "A" と alert(a) a = "A" の振る舞いの違いを説明してくれ。 >>486 何を言いたいのか解らんがJavaScriptも変数宣言は環境ローカルしかないぞ。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/487
488: デフォルトの名無しさん [sage] 2013/02/02(土) 09:17:48.28 >>486 レキシカルスコープの中での変数名の重複を許していない言語が多い。つまり、宣言時に外の スコープで既に宣言されている変数名は内側のスコープでは新たな変数名としては使えない。 そしてこれはクロージャが使える云々とは全く関係がない。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/488
489: デフォルトの名無しさん [sage] 2013/02/02(土) 15:10:12.25 >>488 レキシカルスコープ上で変数名の重複を重複を許さないとか、そんな変態的な仕様な言語は多くないだろ そもそもLISPがそんな仕様じゃないし そういう言語だと、関数の仮引数も同じく関数スコープ上で重複をゆるされなかったりするのか? http://mevius.5ch.net/test/read.cgi/tech/1320761689/489
490: デフォルトの名無しさん [sage] 2013/02/03(日) 06:47:57.58 varは変数宣言以外の何者でもないだろ。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/490
491: デフォルトの名無しさん [sage] 2013/02/03(日) 17:52:21.36 宣言しなくても変数は使えるんだから、varの実質的意味はスコープの制限にある http://mevius.5ch.net/test/read.cgi/tech/1320761689/491
492: デフォルトの名無しさん [sage] 2013/02/03(日) 18:21:35.93 実質的意味とか宣う頓珍漢な俺様曲解に実質的意味など何も無いからw varの意味はローカル変数を宣言して実際に生成すること。 具体的には変数スコープに入ったときにスコープ内のvar以下の識別子を全て列挙して スコープ内の変数名として扱い、値としてundefinedを代入する。これが仕様。 varによってローカル変数が宣言され生成された「結果の一部」がそれ以後の変数への 代入や参照でスコープが制限されているように見えるだけの話。しかしその理解も全体 の一部にしか過ぎないから、「隠蔽」とか「スコープの制限」とかいう理解に留まって いる限り>>487の例ですら解釈出来ない。 そんな問題ありありの俺様曲解にこだわるメリットなんて何も無いと思うのだがwww 仕様通りの「ローカル変数を宣言」で何も困らん。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/492
493: デフォルトの名無しさん [sage] 2013/02/03(日) 19:47:33.12 >>492 そいで結局のところおまえはvarは不要と考えてるわけ? Coffeescriptみたいにスコープ内側では重複した変数名を許さないのがお好み? もしくはスコープ外側を参照する変数にはouterみたいな宣言をつけるとか http://mevius.5ch.net/test/read.cgi/tech/1320761689/493
494: デフォルトの名無しさん [sage] 2013/02/03(日) 20:48:15.46 >>493 自分の感想ではvarの有無なんてどっちでも良いよ。ウンコな部分はそこじゃない。 JavaScriptに関してはstrictモード相当がデフォになることで暗黙のグローバル変数が 無くなって、結果として「宣言しなくても変数は使える」なんて宣う>>491みたいな バカが根絶されれば当面は満足。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/494
495: デフォルトの名無しさん [sage] 2013/02/03(日) 21:45:03.53 宣言無しで使えるのは事実だろうがw代入する必要はあるがw http://mevius.5ch.net/test/read.cgi/tech/1320761689/495
496: デフォルトの名無しさん [sage] 2013/02/03(日) 22:17:13.69 宣言無しだとグローバル変数として使えてしまうのがウンコだと何度言ったら。 stirctモード相当がデフォになれば宣言無し変数への代入はエラーになる。宣言無しでは 変数は使えなくなるわけで、結果として>>491みたいなバカも根絶されて重畳。 非strictモードで宣言無し変数への代入が暗黙のグローバル変数扱いになるのは代入操作が そういうウンコな仕様になっているだけの話であって、varの仕様自体とは直接は無関係。 こんなウンコ仕様が残っていることもvarはスコープを制限とか変な曲解を流布する>>491 みたいなバカが絶えん一因だとも思っている。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/496
497: デフォルトの名無しさん [sage] 2013/02/04(月) 10:40:53.19 >>473 こういう発想でJavaが生まれたりWindowsが無駄に重くなったりしたのかなと思って感心した 個人的にはコピペにして語り継ぎたい http://mevius.5ch.net/test/read.cgi/tech/1320761689/497
498: デフォルトの名無しさん [sage] 2013/02/04(月) 12:18:37.07 >どんなにDQNを生んでもいいんだという >イカれた風潮ができあがってしまった これはもう死語だと早く気づかなくちゃいけない そして景気と同じで大量生産大量消費している時分が一番人類も伸びるんだよ その証拠にDQNでなくとも躾に五月蝿い育て方はしなくなったしな DQNが増える→犯罪が増える→治安維持が必要 はいいが、 DQN撲滅と仮定→犯罪が減る→?? これは人類がもつエントロピー的にまずい。 「節約」すれば世のため人のためになってるって勘違いしてる日本の経済と似ていると思う NewTypeなんていってる人は人類の進化をわかっていないな ま、嫌でも感じずには入られないからこんな不等式を書きたくなるんだろうけどね http://mevius.5ch.net/test/read.cgi/tech/1320761689/498
499: デフォルトの名無しさん [sage] 2013/02/04(月) 16:59:13.90 >>493 で、お前の > 実際は「自分より上位のスコープにある、同名の変数を隠蔽する」機能なのよね。 という主張はどうなったわけ? http://mevius.5ch.net/test/read.cgi/tech/1320761689/499
500: デフォルトの名無しさん [sage] 2013/02/05(火) 03:15:10.52 >>499 それはおれが言ってるわけじゃないけど varは上位のスコープの同名の変数を隠蔽する機能を持ってるってことじゃないの? それが本質かどうかはおれにとってはどうでもいい var自体いらねーとか言う主張に文句があっただけだ http://mevius.5ch.net/test/read.cgi/tech/1320761689/500
501: デフォルトの名無しさん [sage] 2013/02/05(火) 04:33:59.93 そもそもvarいらね〜だなんて誰も言っていない件。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/501
502: デフォルトの名無しさん [sage] 2013/02/05(火) 04:54:32.74 >>501 >>480とか>>485とか>>488とかかな http://mevius.5ch.net/test/read.cgi/tech/1320761689/502
503: デフォルトの名無しさん [sage] 2013/02/05(火) 05:17:00.45 >>502 どれ一つとしてもvarいらね〜だなんて言っていない件w >>480は暗黙の変数がグローバルスコープで作成されるのは筋が悪いと言っているだけだし >>485は"「変数は暗黙に定義される」って軽量言語らしい所と、クロージャが使えることを 両立"するのにvarは必須ではないといっているだけだし、 >>488は言わんとする意味がわからんが少なくとも「varいらね〜」とは一言も言っていない のはわかる。 var無しでの振る舞いに文句を言うのとvarはいらね〜と文句を言うのは全く別問題だぞ。 http://mevius.5ch.net/test/read.cgi/tech/1320761689/503
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 264 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s