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

私的良スレ書庫

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

元スレ+ JavaScript & jQuery 質問用スレッド vol.7 +

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
701 : Name_Not - 2017/10/19(木) 06:00:18.80 ID:???.net (+47,-29,-40)
>>697
例えば_.timesのとこを10万回設定で100セットなら
_.minで10万回、_.maxで10万回の処理
合計30万×100回処理させるというのが通例で
読みやすさを重視した方が良いということですか?
702 : Name_Not - 2017/10/19(木) 09:27:36.67 ID:???.net (+41,-30,-203)
>>701
const startTime = new Date();
const arr = _.times(100000, () => _.random(-499, +499));
const min = _.min(arr)
const max = _.max(arr)
const endTime = new Date();
console.log(endTime - startTime + "ms");

俺の環境で、15ms なんだわ
100セットで1.5秒
これが問題になるかどうかだ
703 : Name_Not - 2017/10/19(木) 09:49:00.93 ID:???.net (+9,-23,-116)
更に言うならrandom以外の部分は3~4ms。100セットで30~40ms
この中で「最大・最小値」の比較と「ループ処理」を行ってる。

1つのforの中に混ぜ込むことで「ループ処理」を減らせるだろうけど
およそ半分の100セットで15msしか減らせない。
10万回×100セットでこの程度なんだよ。forを使いまわす理由はあるかい?
704 : Name_Not - 2017/10/19(木) 09:55:35.73 ID:???.net (+69,+29,-75)
>>701
> 合計30万×100回処理させるというのが通例で
この計算が適当なんだよな。
いかにも3倍になったような書き方だが

ループの部分とループ以外の部分。
ループ以外の部分の処理は変わらない。
残るループの処理は軽くて実行時間は1%しか増えていない。

一番時間がかかってる部分はrandomだろうさ。
705 : Name_Not - 2017/10/19(木) 16:26:56.34 ID:???.net (+68,+30,-42)
>>702-704
なるほど

「こことここ一緒にforにまとめちゃった方が、いや、どうしよう」という
状況によくぶち当たるのですが、一緒のforじゃなきゃダメ
っていう状況以外はまずは分けてから考えた方がよさそうですね
ありがとうございました
706 : Name_Not - 2017/10/19(木) 22:44:19.00 ID:???.net (+32,-30,-56)
>>692
やってみましたがsubmitではトップに移動してしまいます
preventDefault / stopPropagation 両方でも return false でも同様です
707 : Name_Not - 2017/10/19(木) 22:51:30.33 ID:???.net (+68,+29,-31)
>>706
話の続きをしたければそのコードをアップするように
708 : Name_Not - 2017/10/21(土) 05:29:17.06 ID:???.net (-1,-29,-33)
大量の乱数はcrypto.getRandomValuesを利用すると早い
709 : Name_Not - 2017/10/21(土) 18:24:01.04 ID:???.net (+16,-30,-139)
>>707
ご指摘願います

<form id="foo">
 (inputなど画面スクロールするようにたくさん)
 <button id="bar">確定</button>
</form>

$('#bar').click(function(e){
 e.preventDefault();
 e.stopPropagation();
 $('#foo')[0].submit();
});
710 : Name_Not - 2017/10/21(土) 20:07:54.78 ID:???.net (+34,-29,-4)
>>709
submitをキャンセルしろって
711 : Name_Not - 2017/10/21(土) 20:47:38.52 ID:???.net (+93,+28,-19)
>>710
割り込み失礼。
どうやって送信を?
712 : Name_Not - 2017/10/21(土) 20:50:21.95 ID:???.net (+69,+30,+0)
713 : Name_Not - 2017/10/21(土) 21:47:44.04 ID:???.net (+35,+17,-1)
めんどくせ~
714 : Name_Not - 2017/10/21(土) 23:01:07.55 ID:???.net (+37,+9,-5)
スマン、713は誤爆
スレどころか板も違うとこだったorz
715 : 名無しさん@そう - 2017/10/22(日) 14:08:32.36 ID:???.net (+52,+29,-7)
まるで狙ったかの様だな(棒)
716 : Name_Not - 2017/10/22(日) 22:10:28.41 ID:???.net (-1,-29,-22)
jsで送信てsubmit()じゃないの?
717 : Name_Not - 2017/10/22(日) 22:45:25.13 ID:???.net (+14,-28,-15)
ajaxだろ
718 : Name_Not - 2017/10/23(月) 01:48:17.01 ID:???.net (-1,-29,-9)
for(var i=0;;)
みたいにforの中にvarとか入れるのダサいんですけど何かカッコいい書き方ないですかね
719 : Name_Not - 2017/10/23(月) 02:34:35.26 ID:???.net (-6,-29,-2)
for(let i=0;;)
720 : Name_Not - 2017/10/23(月) 02:36:08.65 ID:???.net (+85,+27,-26)
ってか、forの外から見えずに、forごとに初期化されないものは、
forの中に書くしかないだろ。どの言語でも。
forの中にかけない言語のほうがダサい
721 : Name_Not - 2017/10/23(月) 03:18:36.32 ID:???.net (-3,-29,-36)
勝手にforの手前で代入しろよ

jsはifの()内で代入出来ないのがむしろ糞だが
722 : Name_Not - 2017/10/23(月) 05:39:33.47 ID:???.net (+23,-4,-8)
外でlet文で宣言するとfor文内部のクロージャへの効果が変わってくるけどな
723 : Name_Not - 2017/10/23(月) 09:15:43.34 ID:???.net (+67,+21,+0)
>>720
forの外から見えますけど
724 : Name_Not - 2017/10/23(月) 22:44:31.46 ID:???.net (+42,+17,+0)
>>717
めんどくせ~
725 : Name_Not - 2017/10/23(月) 22:55:20.48 ID:???.net (+48,-30,-52)
>>723
素人は、でなおしてきな

for(let i = 0; i < 10; i++) { }
alert(i)

(index):46 Uncaught ReferenceError: i is not defined
726 : Name_Not - 2017/10/24(火) 01:01:47.58 ID:???.net (+69,+29,-45)
>>725
「forの外から見えずに、forごとに初期化されないものは、forの中に書くしかないだろ。どの言語でも。 」

varを使えばforの外から見えるのでforの中に書くしか無いってことはないよね?
727 : Name_Not - 2017/10/24(火) 01:47:16.95 ID:???.net (+57,+29,-32)
「forの外から見えずに、forごとに初期化されないもの」

varはforの外から見えるので上の条件に当てはまらない
728 : Name_Not - 2017/10/24(火) 02:39:24.91 ID:???.net (+45,+17,-5)
つまりjsスレでjs以外の言語の話をしていたのか
729 : Name_Not - 2017/10/24(火) 03:09:15.31 ID:???.net (-3,-26,-4)
letはjsの話じゃん?
730 : Name_Not - 2017/10/24(火) 04:04:39.43 ID:???.net (+74,-30,-34)
変数名の大文字小文字はまったく別物として扱われるようですが
クラス的に使いたい時に
var Hoge=function(){};
var hoge = new Hoge();
みたいにしたいのですが何かデメリットというか
後々困るみたいな事はありますでしょうか?
731 : Name_Not - 2017/10/24(火) 09:22:57.30 ID:???.net (+62,+29,-33)
>>730
うっかりhogeをHogeと書いたときにバグるんじゃね?
しかも潜っちゃって全然見つけられないタイプ
732 : Name_Not - 2017/10/24(火) 17:47:17.78 ID:???.net (+57,+29,-46)
それは飛行機のデメリットとして航空事故を心配するのと同じで大げさだし
letやconstかclass構文を使ってれば解決する話
733 : Name_Not - 2017/10/24(火) 21:24:50.75 ID:???.net (+4,-29,-19)
constはブラウザを選ぶ
そもそも同じにするか?
734 : Name_Not - 2017/10/24(火) 21:54:45.52 ID:???.net (+71,+29,-41)
というかこんなとこでconst使うなよ

一定のルールに順じてれば、自分だけなら自分でしっかり守れてればいいんじゃ
http://analogic.jp/naming-convention/
http://cou929.nu/data/google_javascript_style_guide/
735 : Name_Not - 2017/10/24(火) 22:14:34.48 ID:???.net (+86,+29,-6)
なんで使っちゃ駄目なんだ?
736 : Name_Not - 2017/10/24(火) 23:36:03.27 ID:???.net (+57,+29,-32)
命名のうっかりミスを別の手段で補うことを話しているのに
命名規則をきちんと定める話をするアホ
737 : Name_Not - 2017/10/24(火) 23:52:42.97 ID:???.net (+8,-29,-123)
>>733
> constはブラウザを選ぶ
だからbebelとか使うんでしょ?

>>734
> というかこんなとこでconst使うなよ

constはvarやletよりも多く使う
変数は宣言とともに代入し、一旦代入したら
それ以降変更しないのが良い作法とされる。
俺はconst以外を使うことはめったいにない
738 : Name_Not - 2017/10/25(水) 00:02:46.69 ID:???.net (+12,-30,+0)
>734
その2つのリンクは古すぎるドキュメント。今は参考にならない

Googleの最新のJavaScript Style Guideはこっち
http://google.github.io/styleguide/jsguide.html

http://google.github.io/styleguide/jsguide.html#features-use-const-and-let
> 5.1.1 Use const and let
>
> Declare all local variables with either const or let. Use const by default,
> unless a variable needs to be reassigned. The var keyword must not be used.

ローカル変数はconstかletを使え。デフォルトではconstを使え。ただし再代入ない限り。
varは使うな。としっかり書いている



もう一つの有名なJavaScript Style Guide
http://github.com/airbnb/javascript

もちろんこっちでもconstを使えと書いてある
http://github.com/airbnb/javascript#references--prefer-const
> 2.1 Use const for all of your references; avoid using var
constを使え
> 2.2 If you must reassign references, use let instead of var
どうしても再代入しないといけないなら、letを使え
739 : Name_Not - 2017/10/25(水) 00:23:35.88 ID:???.net (+96,+30,-204)
俺的にはその「一般論」をJSに適応するのは良いことだと思わない
例えば型チェックに拘るんなら最初からTypeScriptを使え、JSは柔軟さを活用しろというのが俺の理屈
もう一つ、世間には良い書き方が一通りであることを良しとする言語もあるが
JSのコミュニティはむしろ色々書け得る可能性と多様性を良しとしてきた

それらに関連して言えることは、JSは表現力が大切で大いに活用していくべきだということ
全てconstにしようというのは、一見慎重にみえて実はピュアJSに取ってはただの横着
letもconstも、もしかするとvarも大事に有意義に使おうと考えてこそJSが生きてくる

別の見かたをするとそれはワレモノを怖いので鋼鉄の箱に突っ込んでしまおうと言ってるようなもの
勿論鋼鉄の箱も重要だけど、それよりも大事なのは緩衝材、そしてデリケートな部分へのさらなるケア
どちらかと言うと、横着するなら布でグルグル巻きにした方がいい、それがJSなんだよ
740 : Name_Not - 2017/10/25(水) 02:37:01.74 ID:???.net (+57,+29,-8)
最初から今のJavaScriptを使えばいいだけ
なにを言い訳がましく言ってるのか
741 : Name_Not - 2017/10/25(水) 11:52:41.91 ID:???.net (+99,+30,-245)
まあなんというか、JSは開発環境1つ取ってもメモ帳から補完の効くIDEまで幅広いし
開発者のコミュニティというのも無くてJavaristaなどが片手間で舐めて使ってた傍らで
ごく一部のJS仙人たちが個人個人試行錯誤してそれぞれの境地にたどり着いていたのがJSの文化だから
はい、今日からこういう書き方が良いことになりましたとどっかの誰かに言われても困惑するだけだろうな

つうかじゃあTC39メンバーが、生みの親Brendan Eichが、const使ってJSの議論してるのか、
色んな発表のときそれを推奨しているのかというとそうではないし、
じゃあGoogleのchromiunやV8ではどうかというと、勿論未だにvarのまま
なら直近のプロダクトはどうかというとTSが書くのが主流だが、ES6を使っているものでも勿論constに拘っているものなどない
というか関数型チックに全てを設計していない限りその変数が一度しか代入いらないものなのかどうかはわからない場合も多い

constは所謂定数で関数の戻り値を入れたりする変数はletで宣言するのがやっぱり普通じゃないか
742 : Name_Not - 2017/10/25(水) 17:42:24.56 ID:???.net (+90,+29,-1)
なんかこのスレ殺伐としてんな
743 : Name_Not - 2017/10/25(水) 18:35:28.39 ID:???.net (+57,+29,-25)
殺伐?
質問も少ないし暇な奴らがまったりだべってるようにしか見えないが
744 : Name_Not - 2017/10/25(水) 20:47:06.78 ID:???.net (+72,+29,-6)
>>739
長たらしいが(失礼!)言ってることには同感

>>742
それも同感
745 : Name_Not - 2017/10/25(水) 22:41:16.65 ID:???.net (+57,+29,-33)
jsに関してはどこぞでこうあるべきと言っても厳格にその通りにしてる方が少ないだろうな。
自分が後々含めて困らなけりゃいいってのも多そう。
746 : Name_Not - 2017/10/25(水) 23:02:38.62 ID:???.net (+76,+30,-182)
>>741
あんたが困惑しているからって他人も同じだと思ったらいかんよ

この話はソフトウェアだけに限った話じゃない。
なんだって時が経てば常識は変わる。殆どはいい方向に変わる。

人類が登場してからずっとやってきた子育てだって
今はミルクよりも母乳が推奨されていたりと未だに変わり続けている
訂正されたならば訂正前のやり方は間違いだってことだよ

Googleや世界中の優秀な人たちが考えたことと
どっかのオッサンが考えたことじゃ説得力が大幅に違いすぎる

有名で信用できるコーディングスタイルが示された今
ここでどっちがいいかなんて議論する意味ないんだよ。
所詮おまえも俺も無名なオッサンなんだから
おとなしく信用できるものを信用しましょうや
747 : Name_Not - 2017/10/25(水) 23:09:00.23 ID:???.net (+45,+17,-6)
柔軟性が高いのはJavaScriptの魅力
748 : Name_Not - 2017/10/25(水) 23:19:18.20 ID:???.net (-1,-29,-45)
ただ言えるのは

10日でJavaScriptを生み出して
10日でMozillaのCEOを辞任させられた
Brendan Eichが考えていることは
必ずしも正しくないということだよ
749 : Name_Not - 2017/10/26(木) 07:11:05.36 ID:???.net (+63,+30,-80)
JSが柔軟だからと言うよりこれから学んでいく子供に規制をかけ過ぎるのは良くないと思うな
個人的には取り返しのつかないことにならないものであれば本人が色々試して時には怪我して学べという教育方針

勿論凡人が集まる会社内だとか、質問者を凡人だと思ってそういうスタイルで指導するのはとても良いことだけどさ
我が子を凡人より上と思いたいように、このスレにわざわざ来てくれた人には凡人より上になって欲しいんだよね
750 : Name_Not - 2017/10/26(木) 09:48:53.63 ID:???.net (+57,+29,-50)
なので仕事の成果物としてはconstを使うべきだし
(仕事の成果物に勉強結果は出してはいけません)

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

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


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