JavaScriptは消滅すべきだったよな (767レス)
前次1-
抽出解除 レス栞

483
(3): デフォルトの名無しさん [sage] 2013/02/01(金) 13:50:13.30 AAS
>>477
477(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モードとか付けたことないし…。
>>487
487(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*