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

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

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

152 = :

>>149
その話がなんの話か具体的に言ってくれ
まさかJITがなんたらかんたらって勘違いしたネタじゃないだろうけど

154 :

>>150
速い遅いのは無しなんかしていない。

>>152
再代入でぐぐったという証拠に
検索結果のトップ5つのタイトルを
ここにコピペしてくれ

155 = :

何かを他人に伝える場合は自分の言葉ではっきりと伝えましょう

156 = :

>>154
お前がぐぐった内容を盾に話がしたいならそれをここに張ればいい

157 = 154 :

>>156
再代入の話をしたいだけだけど?

158 = :

お前が主張したことをここ書けばいいよ

160 = :

再代入でぐぐった記事やスライドにJavaScriptで再代入を使いたくない根本的に納得できる理由はなかったけど

161 = :

ほんとにプログラム板から移民してきちゃったんだなあ
ここは質問用スレッドなんで、突っ込んだ議論をしたいならプログラム板に帰ってやってくれ

162 = :

再代入が嫌なら関数型言語だけ使っとけば良いよ

163 = :

同じnameのradioボタン5つに対してチェックが変わったらイベントを起こしたいのですが、

for (var i = 0; i < radio.length; i++) { //radio.length=5
 radio[i].addEventListener('click', func, false);
}

今こんな感じにしています。
lengthが大きくなるほど何かが間違ってる気がしてならないのですが、
こんなのでいいのでしょうか?
なんかもっといい書き方があったらどんな感じにするのか教えてください。

164 = :

$.(document).on('click', "セレクタ", function(){func()}

166 = :

>>42の件についてですが、配列の連結を非破壊的/破壊的で計測したところ、
破壊的連結の方が圧倒的に速かったです
http://jsperf.com/concat-vs-apply-push1
オブジェクトの新規生成はそれほどコストが高いということでしょうか
ありがとうございました

167 = :

以前prototype.constructorなんて使ってる人いるの?と書いた者ですが、
stackoverflowに以下のようなオブジェクトのcloneをするコードがありました

function clone(obj){
if(obj == null || typeof(obj) != 'object')
return obj;

var temp = obj.constructor(); // changed

for(var key in obj)
temp[key] = clone(obj[key]);
return temp;
}

obj.constructorで呼び出されるのってprototype.constructorですよね
つまり使われるが正解でした
ありがとうございました

168 = :

>>166
concatさんの方は代入まで行ってるからそこまで遅いんだろ。

a.concat(b);
Array.prototype.push.apply(a, b);

処理内容だけを公平に比較するならこう。

169 = :

function a(){
}

function b(){
}

function c(){
}

じゃだめなんですか?
thisとかconstructorとかapllyとか訳わかんないやつ使うメリットはなんですか?

170 = :

>>168
最終的にaに連結した配列が入っていて欲しいのだから
それでは正確にはなりません

171 = :

>>169
それで困らないプログラムを書いてるならそれでいい

172 = :

>>170
> 破壊的連結の方が圧倒的に速かったです

この結論がおかしい。

173 = :

目的ベースではなく処理単位ベースでの比較とすると
確かにおかしいかもしれませんが
現実的には有意味です

174 = :

jsperf落ちてたと思ったら
全てのテストがふっとんだ?

175 = :

> オブジェクトの新規生成はそれほどコストが高いということでしょうか

ベンチ内容と結論が全く結びついてないんだけどね

177 = :

>>175
concatではオブジェクトが新規作成されますよ
非破壊的メソッドとはそのようなものです

178 = :

>>177
意味不明…。

> オブジェクトの新規生成はそれほどコストが高いということでしょうか

この結論は、>>166の比較で concat のコストが高い理由が、
まるでオブジェクトの新規生成のみが原因とでも言ってる様なんだけど。
公平な比較もできてないのに。

179 = :

どなたかぁ~>>163お願いします

180 = :

>>178
代入が遅いと思い込んでいるようですが、代入=名前へのバインドのコストなど、
オブジェクトの新規作成と比べたらごくごく微々たるものですよ
http://jsperf.com/dainyuu
このように代入が一つだろうが二つだろうが差はないのです
むろん差はありますが、ベンチマークの処理に飲み込まれてしまうほどその差は小さいのです
これが事実です

181 = :

>>179
>>164

182 = :

>>181
jQueryは使ったことないのですが、これはjQueryですよね?
具体的にセレクタって何をさせばいいんですか?

184 = :

>>180
で、以下の 2つで比較しない訳は?

a.concat(b);
Array.prototype.push.apply(a, b);

185 = :

>>184
面倒くさいからです
気になるなら比較してみたらどうですか?

186 = :

いや、勘違いしてるのは俺の方だな。

187 = :

>>182
<a>
<b>
</a>
だったら"a>b"がセレクタ
jqueryでああかいとけばわざわざradioをオブジェクトを入れなくてもいいし、radioを増やそうが減らそうがコードはあのままでおk

188 = :

とにかくJavaScripterなら読むべき本をあるだけ教えて

189 = :

>>187
おお!それはすごい
早速やってみます!
どうもご丁寧にありがとうございました

190 = :

>>184
push.applyはスタック大食らいだからNG
http://code.google.com/p/v8/issues/detail?id=2896

193 = :

例えばこういう情報ってES5習得に必須だけど
オライリーの本には載ってるの?
http://constellation.hatenablog.com/entry/20101205/1291564928

194 = :

JavaScript第六版に載ってるよ

195 = :

いや、MDNレベルでしか乗ってなかったからあえて皮肉で言ってるんだけど……

196 = :

俺はMDN読んでもいまいちよく分からんなぁと思ったけど、サイ本読んだら分かったけどね
そもそもさほどインパクトのある機能でもないと思う

197 = :

esprima&escodegenで関数中のvarを集めて関数の頭に持ってくるスクリプトが形になりました
varの散在したコードが一瞬でスマートになってかなりいい感じです
ただesprimaはコメントを文法ツリーと分けたデータにしていて
文法ツリーの書き換えをした場合、コメントの位置情報を修正するのが困難です
コメントも文法ツリーに入れていてくれれば楽だったのに。
どうすればいいですか?

198 = :

インパクトはないかもしれないがES5の数少ない機能の内の御三家だし、
ES5が下地になるES6やその先のためにも、この概念は中級者の必須項目として理解しておきたい

199 = :

ES8ってなにもうそんな話がでてたよ

200 :

>>193
いい加減宣伝やめてくれ。
うざいんだよ。


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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