のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,635,369人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.120 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
201 : Name_Not - 2014/10/07(火) 00:07:08.07 ID:???.net (+89,+29,-8)
メモリリークしたという証拠がなければ、
しないってことでいいじゃね?
202 : Name_Not - 2014/10/07(火) 00:09:59.77 ID:???.net (+64,+29,-2)
>>201
お前天才だな
203 : Name_Not - 2014/10/07(火) 00:17:50.50 ID:???.net (+57,+29,-17)
まあ、普通のブラウザはしないわけで、
しない。がデフォだよ。
証拠をだすのは常識を否定する側の責任
204 : Name_Not - 2014/10/07(火) 00:18:29.81 ID:???.net (+72,-1,-20)
>>200
IE6のSP3未満に関してはメモリリークすることをMSが公式に表明した
他の環境でもリークすると言うのなら、
まずはおまえがその証拠を出してくださいよということです
205 : Name_Not - 2014/10/07(火) 00:44:51.38 ID:???.net (+72,+29,-52)
>>204
メモリリークする条件はDOMとスクリプトが混ざってる状態の話。
その条件を満たしていないのだからメモリリークしない。

メモリリークの話が出たからって何でもかんでも
メモリリークするって言ってるわけじゃないんだよ。
206 : Name_Not - 2014/10/07(火) 01:30:16.99 ID:???.net (+54,+28,-12)
ie6sp2という糞ブラウザで起きた現象が他のブラウザでも起きると思う理由がわからん
普通に考えて起きないだろ
207 : Name_Not - 2014/10/07(火) 01:44:20.52 ID:???.net (+57,+29,-19)
jQueryってこういう形でメモリリーク対策してたんだな。
勉強になった。
208 : Name_Not - 2014/10/07(火) 02:26:01.36 ID:???.net (+58,+29,-2)
全部デレゲーションにしたらいい
209 : Name_Not - 2014/10/07(火) 07:33:11.66 ID:???.net (+76,+29,-46)
>>200
すっごい以前のSafariでもそれは起こってて、メジャーアップデートで修正された思い出
当時、この問題について言及しても「そんなマイナーブラウザで起こることwww」扱いだったけど
今こうして熱く語られてるのはちょっと不思議
210 : Name_Not - 2014/10/07(火) 10:16:31.75 ID:???.net (+106,+29,-37)
んで>>39のケースではどう書くのは一番いいの?
>>42のような書き方なんてほとんど見かけたこと無いしこれがメモリリークするなら著名な人のコード全てを否定することになるぞ
211 : Name_Not - 2014/10/07(火) 12:38:07.94 ID:???.net (+3,-30,-221)
>>199
確かにメモリリークパターンではありませんが、>>134の下記コードはクロージャにする意味がない気がします。
(window依存をなくしてStrict Modeを利用するなら window を bind する価値はありますが)

(function main(global) {
 global.addClickEvent(function() {console.log(global) }
})(window);

addClickEvent(function() {console.log(window); });

他にもcallbacksがグローバル変数である、グローバル関数を多量に生産している事など、改良の余地はありそうですね。
212 : Name_Not - 2014/10/07(火) 12:41:12.76 ID:???.net (+69,+29,-8)
>>210
>>143に答えがあるんじゃないかな
不要だと主張しながら質問するのは意味がさっぱりわからないけど
213 : Name_Not - 2014/10/07(火) 15:02:55.93 ID:???.net (+57,+29,-38)
現実的にはイベントをjqueryを使わずに管理することはほとんどないから
問題になることはないじゃん
214 : Name_Not - 2014/10/07(火) 15:07:01.93 ID:???.net (+89,+29,-16)
今は脱jQueryが進んでるよ
215 : Name_Not - 2014/10/07(火) 15:30:53.39 ID:???.net (+57,+29,-11)
なんで?イベント周り面倒くさすぎるじゃん
別のライブラリ使ってんの?
216 : Name_Not - 2014/10/07(火) 15:33:58.88 ID:???.net (+57,+29,-18)
イベントもろくに書けないザコっていんの?
217 : Name_Not - 2014/10/07(火) 15:38:59.22 ID:???.net (+0,-28,-14)
YUIが潰れたしjQuery一極集中が進んでる
218 : Name_Not - 2014/10/07(火) 15:50:00.70 ID:???.net (+57,+29,-11)
単に面倒くさいだけのところはライブラリに任せるのが基本だろ
無能がいるようだが
219 : Name_Not - 2014/10/07(火) 15:56:11.56 ID:sMdzX1NX.net (+24,+29,-29)
別のライブラリに任せるとしたらそのライブラリが問題を吸収するよな
かつてこういう問題があった、という知識はあった方がいいと思うけど
220 : Name_Not - 2014/10/07(火) 15:58:49.10 ID:???.net (+43,-30,-106)
var Color;
(function (Color) {
Color[Color["Red"] = 1] = "Red";
Color[Color["Green"] = 2] = "Green";
})(Color || (Color = {}));
;
var a = Color.Green /* Red */;
console.log(a);

これどうして1って表示されるのか教えてください
どうしてColorに代入してないのにColor.Greenで2を返すのかわかりません
221 : Name_Not - 2014/10/07(火) 16:08:08.31 ID:???.net (+4,-30,-82)
>>220
TypeScriptのenumだな
Color["Green"] = 2
でメンバーに2を代入してるから
ちなみに、代入の戻り値は代入した値だから、その後Color[2] = "Green"が実行される
222 : Name_Not - 2014/10/07(火) 16:10:48.40 ID:???.net (+62,+29,-16)
>>220
ん?なんか変だぞ…1が表示されるはずがないな
多分どっかでColorが定義済みだろ
223 : Name_Not - 2014/10/07(火) 16:11:27.23 ID:???.net (+54,+26,-4)
あ、すいませんtじゃなくて2です
べんきょうになりあmした
224 : Name_Not - 2014/10/07(火) 19:43:30.28 ID:???.net (+2,-25,-51)
ついでにすいませんそのコードなんで無名関数の中で実行してるのにグローバルのColorに代入されちゃってるんですか?
227 : Name_Not - 2014/10/07(火) 20:26:26.84 ID:???.net (+57,+29,-55)
それは実測しだい。
==と===なら===のが早いだろうってのは期待できるが体感できるわけでねーし、
状況に応じて使い分けるのだろ。

str.lengthは事前に文字列って確定してること前提だから上二つと意味合いも違うし。
228 : Name_Not - 2014/10/07(火) 20:40:08.30 ID:???.net (+62,+29,-9)
>>192です。
もし無理そうなら初めからメニューの最大の高さに合わせておくことにします。
229 : Name_Not - 2014/10/07(火) 20:44:59.84 ID:???.net (+20,-30,-27)
>>226
if (!str) {
// str が null, undefine, 空文字列 でない
}
普通は↑これでいいんじゃないの?
230 : Name_Not - 2014/10/07(火) 20:46:45.60 ID:???.net (-3,-29,-24)
>>229
あれ?コメントが逆だったか…
// str が null, undefine, 空文字列
231 : Name_Not - 2014/10/07(火) 21:22:26.49 ID:nCuNEytv.net (-16,+29,-5)
>>227
ふむふむ

>>229
これが一番はやいんですか?意外でした
ありがとう!
232 : Name_Not - 2014/10/07(火) 21:34:07.01 ID:???.net (+11,-29,-31)
>>192
CSSじゃないんだからheightなんてプロパティはありません
javascript 要素 高さ 取得
でぐぐりましょう
233 : Name_Not - 2014/10/07(火) 21:37:49.11 ID:???.net (-6,-29,-11)
offsetHeigh
234 : Name_Not - 2014/10/07(火) 21:38:18.24 ID:???.net (+19,+1,+0)
t 
235 : Name_Not - 2014/10/07(火) 21:53:58.99 ID:???.net (+51,-30,-170)
jQueryなどを使わなかったらイベント周り面倒くさいよな。

$('.hoge').on('click', function() {}) と同等のことをするだけでも
ループをいちいち使わないといけないし。

>>208が全部デレゲーションにすればいいと言ってるけど、
jQueryなら

$(document').on('click', '.hoge, function() {})

これだけでいいのがjQuery使わなかったら、.hogeと一致しているか?って
調べないといけない。特定のセレクタに当てはまるか?ってどうやってかけばいいんだろう。
いちいちclassNameがなにで~とかで比較するんじゃなくて、CSSセレクタで比較したい。

面倒くさい処理が沢山あるって指摘したら、自分でライブラリ作ればいいんだよ!って
言い出すし、本末転倒w
236 : Name_Not - 2014/10/07(火) 21:58:19.52 ID:???.net (+108,+29,-209)
>>214
> 今は脱jQueryが進んでるよ

脱jQueryっていうのはjQueryじゃなくて
AngularJSを使いましょうとか別のライブラリを使おうって話で
ブラウザネイティブのライブラリだけを使いましょうって
意味じゃないよ。

で、そういうライブラリはjQueryよりも重くて難しいので
UIをJavaScriptだけで作ろうってサイト以外では使われてない。
いわゆるウェブサイトやブログなんかではやっぱりjQueryが主流。

脱jQueryが進んでるのはウェブアプリを作ってるところぐらいだよ。
237 : Name_Not - 2014/10/07(火) 22:04:34.47 ID:???.net (+97,+29,-18)
>>235
書き方を知らないからjQueryに逃げてるだけじゃねえかよ
238 : Name_Not - 2014/10/07(火) 22:05:54.48 ID:???.net (+106,+29,-3)
>>236
意味じゃないよってそれはお前の中で花
239 : Name_Not - 2014/10/07(火) 22:08:04.09 ID:???.net (+77,+29,-52)
>>237
じゃあ、一行でセミコロンも使わずに書いてみて。

君がレスするまで反論できねぇだろ?って
思いながら待ってるよんw
240 : Name_Not - 2014/10/07(火) 22:09:14.53 ID:???.net (+72,+29,-24)
>>238
なんか言いたいことがあるのなら
反例でも持ってこようよw

このままじゃ、言い返したい気持ちはあるが
何も言い返せない。悔しい!としか見えないよんw
241 : Name_Not - 2014/10/07(火) 22:09:51.62 ID:???.net (+57,+29,-37)
一行でセミコロンも使わずに書けるよ。
俺ならな!

はい論破。
242 : Name_Not - 2014/10/07(火) 22:10:18.82 ID:???.net (+36,+18,-2)
はい惨敗w
243 : Name_Not - 2014/10/07(火) 22:10:42.09 ID:???.net (+49,-30,-45)
>>239
1行で書くと日の話はしていない
勝手に後出ししないように

あと

>$('.hoge').on('click', function() {}) と同等のことをするだけでも
>ループをいちいち使わないといけないし

これと同等のことをやるならループなんてしませんよ
244 : Name_Not - 2014/10/07(火) 22:13:10.63 ID:???.net (+69,+30,-45)
>>243
つまり、jQueryと同等の短さには出来ないって
認めるってことでいいよね?

それが面倒だって言ってるんだけど、

「書けるよ。俺ならな!」は分かったから
さっさと書けよw

言い返したいが何も言えない悔しい!w
245 : Name_Not - 2014/10/07(火) 22:15:24.74 ID:???.net (+62,+29,-103)
なんだ? jQueryと同じことをするコードを
冗長に書けるって言ってるだけか?

そりゃjQueryだってブラウザネイティブの
命令使ってるわけで、そんなの当たり前だろ。

まさか、俺はjQuery使わないでも書けるって
言ってただけなのか?レベル低いな。
246 : Name_Not - 2014/10/07(火) 22:16:24.21 ID:???.net (+90,+29,-18)
後出しって言われないうちに先に行っておこう。

forEachメソッドはループです。
247 : Name_Not - 2014/10/07(火) 22:19:56.60 ID:???.net (+57,+29,-36)
jQueryが一行で書いているのだから
対抗するのであれば一行で書くのが筋だろう。
248 : Name_Not - 2014/10/07(火) 22:30:34.45 ID:???.net (-1,-29,-42)
forEachはまだサポート中のIE8で使えないしね。
まあそこでlodash(underscore)が出てくるわけだけど。

lodash 3.0まだかなー。
249 : Name_Not - 2014/10/07(火) 22:39:36.24 ID:???.net (+86,+29,-2)
>>229
嘘教えんなカス
遅いわ
250 : Name_Not - 2014/10/07(火) 23:06:21.37 ID:???.net (+63,+29,+0)
>>249
すぐ後に訂正してるよ
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について