JavaScriptは消滅すべきだったよな (767レス)
上下前次1-新
抽出解除 レス栞
483(3): デフォルトの名無しさん [sage] 2013/02/01(金) 13:50:13.30 AAS
>>477477(3): デフォルトの名無しさん [sage] 2013/02/01(金) 06:28:47.54 AAS
var無しは外側の関数スコープの宣言を探しに行くだけで、即グローバルになるわけじゃないぞ
クロージャとかを考えるとこの仕様のほうが素直だと思うけどね
varって「ローカル変数を定義する」って説明されるし、現実にはその通り使うけど、
実際は「自分より上位のスコープにある、同名の変数を隠蔽する」機能なのよね。
「変数は暗黙に定義される」って軽量言語らしい所と、
クロージャが使えることを両立させようとすると、
素直っちゃあ素直な作りなんだよな。
純粋に言語として見れば、JSは面白いんだがなぁ……
484(2): デフォルトの名無しさん [sage] 2013/02/01(金) 14:35:09.01 AAS
>>483
varは、同じ変数が上位のスコープにあったらそれを隠蔽するという仕様なだけで、
> 実際は「自分より上位のスコープにある、同名の変数を隠蔽する」機能
というのは変だぞ。
> ローカル変数を定義する
こっちが本筋の機能でしょ。
485(5): デフォルトの名無しさん [sage] 2013/02/01(金) 15:57:37.43 AAS
別にvarが無くたって変数が暗黙的に定義できてクロージャが使える言語なんていくらでもあるでしょ。
>>483は曲解過ぎる。
で
JavaScriptのvar無しでの振る舞いの仕様がウンコであることはstrictモードの存在自体が証明している。
505: 483 [sage] 2013/02/05(火) 10:04:46.71 AAS
>>485 strictモードとか付けたことないし…。
>>487487(2): デフォルトの名無しさん [sage] 2013/02/02(土) 07:20:59.56 AAS
>>484
悪いが仕様を語るならまず仕様を読め。
「同じ変数が上位のスコープにあったらそれを隠蔽するという仕様」とやらで
alert(a)
var a = "A"
と
alert(a)
a = "A"
の振る舞いの違いを説明してくれ。
>>486
何を言いたいのか解らんがJavaScriptも変数宣言は環境ローカルしかないぞ。
えっと思って試しに書いてみたら、ほんとに未定義エラー出るし…。
自分の不勉強で話に着いていけないから、もうROMってたんだが……
なぜか>>484が難癖付けられててワロタw
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.149s*