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

私的良スレ書庫

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

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

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
501 : Name_Not - 2013/12/31(火) 03:15:47.17 ID:??? (+59,+27,-27)
>>499
jQueryしか使えない人っていないだろw
502 : Name_Not - 2013/12/31(火) 03:16:51.45 ID:??? (+53,+25,-14)
jQueryが使えない人ならたくさんいそうw
503 : Name_Not - 2013/12/31(火) 08:41:52.07 ID:??? (+57,+29,-19)
jQueryの下の生JSの動作原理をよく分かってないやつはいるよ
504 : Name_Not - 2013/12/31(火) 14:05:44.26 ID:8IyzuMAS (+64,+29,-64)
jQuery以前に使っていた自前の関数群が懐かしい
似たようなものが多いけど、幾つかはjQより速いのや柔軟なものがあった、はず

んで、たまーに古いサイトのメンテナンスでそれが出てくると
今の社員では全く使えないので自分でやる羽目になる…
505 : Name_Not - 2013/12/31(火) 14:44:53.60 ID:??? (+57,+29,-20)
なぜソースコードがあるのに使えないのか?

それは柔軟なのではなく、いろんな機能を詰め込み過ぎで
しかも直感的ではなく複雑なだけではないだろうか。
506 : Name_Not - 2013/12/31(火) 15:16:35.98 ID:??? (-1,-29,-42)
最小値以下なら最小値、最大値以上なら最大値、
という処理を、Math.minやMath.maxでやるのとifでやるのと
どっちがいいですか?
507 : Name_Not - 2013/12/31(火) 15:39:53.17 ID:??? (+86,+25,-64)
>>504
速いのって単にメモリリークの処理とかちゃんとやってないだけじゃねーの?
jQueryとかのソース見ればわかることだが、
特定のブラウザのバグとかリークに対応するために、
重い処理になってる関数が結構ある。
508 : Name_Not - 2013/12/31(火) 15:52:51.55 ID:ol4RjipZ (+41,+30,-74)
>>507
00年代前半としては、そこそこちゃんとしてたと思いたいなあ
まだMac版のIEとかが現役だった頃に作って、今でもかろうじて動いてんだからw

楽するために作り始めた関数群なのに
いつの間にかそっちのメンテしてる時間の方が長くなっちゃったりしたなあ
若さゆえの過ちだったわ
509 : Name_Not - 2013/12/31(火) 16:02:56.55 ID:??? (+57,+29,-38)
俺だったら5年ぐらい前に、自分の作った関数の実装を
jQueryに置き換えて徐々にjQueryに移行できるように
しているだろうな。
510 : Name_Not - 2013/12/31(火) 16:11:14.64 ID:??? (+63,+30,-186)
こういうのはね。若さゆえの過ちで終わらせたらいけないんだよ。
そもそも若さとは関係なくて、jQueryやPrototypeなどが無い時代に
これらに匹敵するライブラリを自作するのはまずムリだろう。
だから(今からすれば)誰だって誤った道に進む。

問題なのは、その誤った道に進んだものを救済せずに
ずっとその道のまま進ませること。
これは昔の自分ではなく、今の自分がやってることでしょ?
それなのにそれを昔の自分のせいにしてる。現在進行形で間違い続けてるんだよ。

間違った道に進んだと気づいたなら、
それを正しい道につなげる道を作らなきゃ。
つまり、オレオレライブラリからjQueryライブラリへの
移行方法を確立しなければいけなかった。
511 : Name_Not - 2013/12/31(火) 16:14:44.96 ID:??? (+57,+29,-18)
そのjQueryが絶対神みたいな論調なんなの
512 : Name_Not - 2013/12/31(火) 16:38:02.42 ID:??? (+57,+29,-20)
jQueryじゃなくてもいいよ。
それと同等以上に効率的にかけるものを使えば良い。
513 : Name_Not - 2013/12/31(火) 16:41:56.28 ID:??? (+57,+29,-8)
うざい説教垂れてるやつなんなんだよw
くだらねーこと言ってないで大掃除でもしろ
514 : Name_Not - 2013/12/31(火) 16:47:53.99 ID:??? (+57,+29,-17)
日頃から掃除をしていれば、
大掃除は必要ない。

大掃除なんてものをするのは日本ぐらいだぞ。
ただの文化であり、たいした理由があるわけじゃない。
515 : Name_Not - 2013/12/31(火) 17:03:39.52 ID:??? (+52,+29,-3)
文化に大した理由がないとかワロタ
516 : Name_Not - 2013/12/31(火) 17:21:08.33 ID:??? (+122,-30,-19)
var a=(function () { 処理 }());って使い方がありますが、
これってvar a=function () { 処理 }();ではダメなのでしょうか?
違いを教えて下さい
517 : Name_Not - 2013/12/31(火) 17:38:57.68 ID:??? (+89,+21,-19)
>>516
無名関数だと読み込みが早くなるとか
間違ってたらスマソ
518 : Name_Not - 2013/12/31(火) 17:46:50.62 ID:??? (+57,+29,-11)
質問です
http://ijbk.deci.jp/?p=1060
のイベントの伝達ってとこがよくわからないのですが
クリック後の流れをもうちょっと詳しく説明してもらえないでしょうか
519 : Name_Not - 2013/12/31(火) 18:00:29.56 ID:??? (+74,+29,-4)
>>516
一貫性のためだから問題ない
>>517
大間違い謝れ
520 : Name_Not - 2013/12/31(火) 18:14:55.57 ID:??? (+73,+29,-98)
配列のシャッフルって良い方法ない?
なんかきちんとやるなら泥臭い方法になるようだけど、ランダム数値を取るのに2回め以降は単純な演算で済むシード値を使う方法のように、実質ほぼシャッフルでいいので、美しくパフォーマンスの良い方法教えて。
521 : 516 - 2013/12/31(火) 18:19:55.77 ID:??? (+10,-29,-47)
>>519
>>>516
>一貫性のためだから問題ない
とは、無名関数の実行を変数に代入するしないに関わらず
(function () { 処理 }());に統一するためということでしょうか?
522 : Name_Not - 2013/12/31(火) 18:56:45.41 ID:??? (+51,+9,-49)
>>516
後者だと最後の() が出てきて初めて関数そのものを代入しているんじゃないってわかるでしょ?
前者だと (function のところでわかる。
523 : Name_Not - 2013/12/31(火) 19:10:09.51 ID:??? (+46,+13,-36)
分かる分からないじゃなくて
本当は括弧なんて付けないで即時関数は
function(){}()
と書きたいけど、平の場合は式ではなく宣言と取られてエラーになってしまうから括弧でくくったりしないといけない
文中の場合は式ととってくれるので括弧は必要ないが、前者との一貫性のため、つけ忘れたり勘違いが起こらないために付けたほうがいいというやつもいる
524 : Name_Not - 2013/12/31(火) 19:20:04.62 ID:??? (+12,-30,-119)
>>520
なに言いたいのか知らんけど長さNの配列に対してN-1回のループ回してN-1回ランダム関数呼んでN-1回のswapで終わらす定型文じゃ駄目なの?
こんなんfor(var i=0;i<list.length-1;i++){var t=list[i],p=Math.floor(i+Math.random()*(list.length-i));list[i]=list[p];list[p]=t;}
525 : Name_Not - 2013/12/31(火) 20:00:00.98 ID:??? (+24,-30,-92)
例えばこういうの

as = new ArrayShuffle(10)
as(arr1)
as(arr2)
as(arr3)

その長さの配列を決まったパターンでスワップする、使いまわせる関数を自動生成して欲しい。
526 : Name_Not - 2013/12/31(火) 20:06:49.05 ID:??? (+3,-30,-26)
例えば
f = new ArrayShuffle(3)
なら
f = a => [a[0],a[1],a[2]] = [a[1],a[2],a[0]]

f = a => [a[0],a[1],a[2]] = [a[2],a[0],a[1]]
なんかが生成される感じ。
527 : Name_Not - 2013/12/31(火) 20:45:16.65 ID:??? (+57,+29,-7)
JavaScriptに連番のリストを作る方法がないのは何故ですか?
皆さんどうされているのでしょうか
528 : Name_Not - 2013/12/31(火) 21:03:08.21 ID:??? (+8,-30,-113)
>>525
function ArrayShuffle(len) {
 スワップに必要な乱数を生成して配列に保存

 return function (arr) {
  保存されてる乱数を元に arr を操作
 };
}

という感じで作ってみれば?
529 : Name_Not - 2013/12/31(火) 21:07:22.59 ID:??? (+0,-25,+0)
foreachがないのが一番糞
530 : Name_Not - 2013/12/31(火) 21:37:56.42 ID:??? (+0,-29,-18)
>>528
それだとパフォーマンス悪いからnew Functionで作ったほうがいい
>>529
ありゅよ
531 : Name_Not - 2013/12/31(火) 22:25:13.04 ID:??? (+31,+3,-18)
2014年はES6の年だな
ES6なら連番リストだろうがなんだろうがお茶の子さいさいよ
532 : 516 - 2013/12/31(火) 22:42:47.41 ID:??? (-2,-30,-24)
みなさま。ありがとうございました
変数に代入して使うときでも、var a=(function () { 処理 }());
を使用することにします。
533 : Name_Not - 2013/12/31(火) 22:57:32.31 ID:??? (+9,-30,-34)
var a=(function () { 処理 }());
はそうすることにした経緯からするとおかしい
var a=(function () { 処理 })();

var a=function () { 処理 }();
かでないと意図が掴めない
534 : 516 - 2013/12/31(火) 23:03:14.27 ID:??? (+4,-30,-103)
>>533
Immediately-Invoked Function Expression (IIFE)
(function(){ /* code */ }()); // Crockford recommends this one
(function(){ /* code */ })(); // But this one works just as well
http://benalman.com/news/2010/11/immediately-invoked-function-expression/

実行速度が(function(){ /* code */ }());のほうが速いとありました
http://polygon-planet-log.blogspot.jp/2011/12/javascript-function-function_17.html
535 : Name_Not - 2013/12/31(火) 23:10:44.05 ID:??? (+57,+29,-17)
はぁ……
取り敢えずその考え方は今年でスパッと捨てたほうがいいね
もうそのくらいしか言ってあげられないわ、すまんね
536 : Name_Not - 2014/01/01(水) 00:01:02.16 ID:??? (-11,-29,-1)
JS
iei
537 : Name_Not - 2014/01/01(水) 02:12:34.59 ID:??? (+0,-29,-20)
>>525
Mah.randomをシード付き乱数で置換しろ。
538 : Name_Not - 2014/01/01(水) 02:48:07.40 ID:??? (+52,+29,-3)
痴漢で種付けとはえろいな
539 : Name_Not - 2014/01/01(水) 10:02:40.65 ID:??? (+2,-25,-51)
Math.ramdomを毎回使わずに例の動的関数作成法を使ったほうがJSとしてベストだとは思うが……
540 : Name_Not - 2014/01/01(水) 11:32:48.10 ID:??? (+17,-14,-25)
連番の配列ってどうやるのが一番簡単なの?
ライブラリなしの話で
541 : Name_Not - 2014/01/01(水) 12:00:30.62 ID:??? (+0,-30,-42)
>>540
連番の配列って何だ?
for ( i = 0; i < num; ++i ) {
 a[i] = i+base;
}
みたいな事?
542 : Name_Not - 2014/01/01(水) 12:44:15.53 ID:GZiG1fWg (+24,+29,-17)
あらかじめ乱数表を作っておくのはどうだろうか
543 : Name_Not - 2014/01/01(水) 14:14:08.76 ID:??? (+5,-30,-93)
>>525
function ArrayShuffle(len){
let a=[...Array(len).keys()],b=[...a],c=[];
while(len)c.push(a.splice(Math.random()*(len--),1)|0);
return eval('a=>['+['a['+i+']' for(i of b)]+']=['+['a['+i+']' for(i of c)]+']');
}
544 : Name_Not - 2014/01/01(水) 15:59:45.48 ID:??? (+9,-29,-55)
座標の変数をx、yにしてきたのですが
rightやbottomとの兼ね合いからleft、topの方がいいと分かりました
しかし置換が大変です
単純にxやyを置換すると関係ない部分も大量にマッチしてしまうので
どうすればいいですか
545 : Name_Not - 2014/01/01(水) 16:01:12.15 ID:??? (+26,-29,-29)
使っているエディターは、サブラーイムテキスト・2です
546 : Name_Not - 2014/01/01(水) 16:21:43.47 ID:??? (-1,-29,-33)
座標がなぜx,yかというと短いほうが計算に便利だから
よってプログラミングではx,yでいい
547 : Name_Not - 2014/01/01(水) 16:53:12.71 ID:??? (+64,+29,-41)
でも気持ち悪くないですか
点に関してはx, y
面に関してはleft, topが適していると思います
しかし書き換えは想像以上に大変だと分かってきました
548 : Name_Not - 2014/01/01(水) 16:56:55.02 ID:??? (+42,+24,-1)
座標は点です
549 : Name_Not - 2014/01/01(水) 17:02:56.68 ID:??? (-1,-29,-37)
jqueryでも要素の座標にx, yは使ってないのでは?
550 : Name_Not - 2014/01/01(水) 18:05:08.33 ID:??? (+51,+28,-3)
http://jsperf.com/for-loop-testtest2
こんな差出るもん?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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