JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (767レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
287: デフォルトの名無しさん [sage] 2016/07/17(日) 18:00:55.04 ID:UzC9Qtsn(1/8) AAS
2chスレ:tech
質問スレ>>213
自己紹介乙。
てかお前はどうしてそこにこだわるのか全く謎なのだが。
普通に考えれば、引き算が出来るのならMDNで、
> var elapsed = end.getTime() - start.getTime(); // 時間をミリ秒で表す
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date
これは明らかにおかしくて、
var elapsed = end - start; // 時間をミリ秒で表す
となるべきだろ。お前が言う「経験のある」奴ならここに地雷臭をかぎ取るわけ。
何らかの理由で getTime() しないといけないんだよ。
とはいえ、今1stEdition(1997)見ても abstruct operator という単語自体は使ってないが、
他は同じなので、最初から出来たのではないかとも思うのだが、、、まあよく分からん。
http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf
実際、彼がググって来た例でも直接引き算してないだろ。
俺が(当時)ググッた限りでも出てこなかったから、何かしら理由があるのだと思う。
というわけで俺は「使えない」判定を下していた。
で、これは多分「既に他言語を知っている奴」の普通のやり方なんだよ。
俺がお前に「経験がない」と断定しているのはこういうのが全く通じてないから。
何度も言っているが、お前はもっと書いた方がいい。
ここに質問に来る奴の大半は、「MDNを読め」で済む。
ただお前はもう教科書的な知識は十分にあるんだよ。
だから仕様書をいくら読んでもそれ以上にはならない。
お前が上達するには、書くしかないんだよ。
288: デフォルトの名無しさん [sage] 2016/07/17(日) 18:23:29.08 ID:UzC9Qtsn(2/8) AAS
一応俺の疑問としては、
ToPrimitive(Number) は 無変換で Number そのものを返す。(9.1)
ToNumber(Number) は 無変換で Number そのものを返す。(9.3)
GetValue(V)はVが参照でなければ V そのものを返す。(8.7.1)
+ は ToPrimitive(GetValue(target))の型がStringならString連結、
そうでないなら ToNumber(ToPrimitive(GetValue(target))) で数値の和を返す。(11.6.1)
Date型は内部に time values を持ち、abstruct operationはこれを対象とする。(15.9.1)
だったら足し算も出来ないと駄目じゃね?ってことね。
厳密に言えばGetValueはabstruct operation ではないので、
仕様と実装に矛盾が無い為には、 GetValue(time values) がStringを返す必要がある。
こうなんだっけ?
290(1): デフォルトの名無しさん [sage] 2016/07/17(日) 18:40:03.90 ID:UzC9Qtsn(3/8) AAS
>>289
いやそれ何の事よ?
誤爆かと思いきや、そうではないのなら、
とりあえずブラウザバグっているからリロードしとけ。
291(2): デフォルトの名無しさん [sage] 2016/07/17(日) 18:50:05.41 ID:UzC9Qtsn(4/8) AAS
ああ、引き算を確認するの忘れてた。
- は ToNumber(GetValue(target)) を引いて差を返す (11.6.2)
ToNumber(String) は 9.3.1 に従いパースする (9.3)
9.3.1内にはDate.toString()出力をパースする仕様はない。
だからGetValue(time values)はNumberを返さないと引き算は出来ない。
となると足し算も出来ないと仕様外のように思える。
なお確認している仕様はECMA5.1
http://www.ecma-international.org/ecma-262/5.1/#sec-11.6.1
294: デフォルトの名無しさん [sage] 2016/07/17(日) 19:13:09.85 ID:UzC9Qtsn(5/8) AAS
>>292
まあ何か思惑があるのならそれでいい。
ただ俺が見る限り今のところはAddが出来てもおかしくない仕様のように見える。
もちろん俺は仕様書なんてほぼ見てないから、先のように単語を変更されていると気づけないが。
まあいいや、とりあえず新着情報があるまではどうにもならんし。
現実的にDateが揃いも揃って仕様違反って事もないだろうし、
先の例のように俺が仕様書を読み慣れていないせいで見落としている部分があるのだろう。
295(1): デフォルトの名無しさん [sage] 2016/07/17(日) 19:23:49.21 ID:UzC9Qtsn(6/8) AAS
> (今回で言えば日付型同士の減算が可能!?) (質問スレ>>213)
あと一応言っておくと、日付型ってのは普通は減算出来るんだよ。
だから質問者もいきなり減算しているし、
俺も逆にそれが出来ない!ってことでMDNに奇妙さを感じるわけでね。
だからこの点についても、この反応、もう一度書くと、
> (今回で言えば日付型同士の減算が可能!?) (質問スレ>>213)
これは経験豊富ならあり得ないんだよ。
で、そういうのは明らかにバレバレだから、
普通に考えてお前が経験豊富だと思う奴はいないと思うんだよね。
何でそこにこだわるのか全く分からないんだけど。
匿名掲示板で虚勢を張る意味無くね? ◎
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
298: デフォルトの名無しさん [sage] 2016/07/17(日) 22:11:41.91 ID:UzC9Qtsn(7/8) AAS
つか相変わらずお前は都合が悪いところは読まない主義なのなw
MSDNでもやっぱりgetTime()してるんだよ。
https://msdn.microsoft.com/ja-jp/library/ee532932(v=vs.94).aspx
既に言ったがMDNも。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date
ついでにStackOverflowでも軒並み。
http://stackoverflow.com/questions/10931288/how-to-add-subtract-dates-with-javascript
http://stackoverflow.com/questions/1296358/subtract-days-from-a-date-in-javascript
http://stackoverflow.com/questions/7687884/add-10-seconds-to-a-javascript-date-object-timeobject
基本的にDateオブジェクトの直接操作は誰もやってないから、何か理由はあるとは思うんだけどね。
それが何かは俺には分からない。
考えられるのは、オブジェクト指向的な「メソッド越しに全てやれ」なのか、
実装ありきで来ている為、実は「仕様的裏付けがない」のか。(将来的に使える保証がない)
いずれにしても、サンプルコードにそう記述しない理由があるのは確かなんだよ。
どっちにしたってここまで地雷臭だと公開するコードなら直接操作は止めたほうがいいとは思うが。
質問者は今動けばいい個人レベルのコードだろうから別に構わないとは思うけど。
300: デフォルトの名無しさん [sage] 2016/07/17(日) 23:28:43.23 ID:UzC9Qtsn(8/8) AAS
まあどう思うかは自由だが、状況証拠からの推測なら、
1. 引き算は出来ているだけで、仕様として認められているわけではない
2. 多分俺の既投稿の解釈も間違いがあり、addの方は「仕様」で、subの方は「仕様外」
じゃないかな。以下でもgetTime()で引き算だ。
> delta *= date2.getTime() - date1.getTime();
> https://github.com/phiggins42/bloody-jquery-plugins/blob/master/date.js
とにかく確実に言えるのは、みんな引き算する前に getTime() してるんだよ。
オブジェクト同士を直で引き算している人は誰もいない。
で、もし君が「経験豊富」なら、
実はこういう「動くけど仕様外」のケースも結構あることを知っているはずなのだが。
だからマジでウザイしバレバレだから、いい加減にやめい。
いずれにしても、本当に経験豊富な奴は、誰も君のことを経験豊富だとは思わないよ。
虚勢を張るのも自由ではあるけど、意味無いと思うが。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s