JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (767レス)
JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1449440793/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
302: デフォルトの名無しさん [sage] 2016/07/17(日) 23:31:41.37 ID:PyzTEoPA × 2. 多分俺の既投稿の解釈も間違いがあり、addの方は「仕様」で、subの方は「仕様外」 ○ 2. addの方は「仕様」で、subの方も「仕様」 http://www.ecma-international.org/ecma-262/5.1/#sec-11.6.1 ここにもしっかり書いてある。 http://mevius.5ch.net/test/read.cgi/tech/1449440793/302
304: デフォルトの名無しさん [sage] 2016/07/18(月) 00:12:28.04 ID:CK8ZYmxh >>302 Note1だろ? > Date objects handle the absence of a hint as if the hint String were given. 辿ってみたが、なるほど[[DefaultValue]](8.12.8)の所でデフォがDateに関してはStringというのは分かった。 そしてValueOf()が返してくるのはこれだから、Add側がString連結になっているのはこれでいい。 ただこれだとsub側が都合が悪い。つまり、もう一度書くと、以下になっているわけだが、 > - は ToNumber(GetValue(target)) を引いて差を返す (11.6.2) (>>291) GetValue(target)がデフォでStringを返してくるのでデフォのままでは引き算は出来ない。 一応GetValueにはPreferredTypeを指定することが出来て、 Numberを指定していれば数値が返ってくる。 だから仕様としてsubを定義する為には、subの時はNumber指定しないといけない。 で、それはどこに書いてあるんだ? なおお前が大好きなmoment.jsも確認したが、同様に直ではなく、こちらはvalueOfを使っていた。 > mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); > http://momentjs.com/downloads/moment.js つってもMDNには同じだと明記されているが。 > This method is functionally equivalent to the Date.prototype.getTime() method. > https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/valueOf いずれにしても、何かしら理由があったんだと思うが。 とりあえず5.1で確認出来たらその記載が旧仕様にあるかどうかを確認すればいい。 つかこの際英語は関係ないだろ。そういうのもコンプレックス出まくりだから止めたほうがいい。 英語は日本語より下手なのを自覚した上で、ヒット件数と内容をとるか、言語をとるかでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1449440793/304
308: デフォルトの名無しさん [sage] 2016/07/18(月) 01:13:38.23 ID:CK8ZYmxh ああ、なるほど分かった。 String変換はToPrimitiveの時であって、GetValue時ではないんだな。 この点を>>304では間違えていた。 Add: ToPrimitive(GetValue(target))でStringになって、それを連結。 Sub: ToNumber(GetValue(target))でNumberになって、引き算。 SubではToPrimitiveがないのがミソだ。 となるとそちらの主張通り、 > ○ 2. addの方は「仕様」で、subの方も「仕様」 (>>302) のように見える。 さて、記載されている箇所は分かったので初期仕様(1997)版を確認したが、 http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf 11.6.1 The addition operator(+) 11.6.2 The subtraction operator(-) 9.1 ToPrimitive 9.3 ToNumber 15.9 Date Object に本質的な違いがあるようには見えない。 つまり、最初から仕様としてaddもsubも使えた(今と同じ動作だった)ように見える。 しかし誰もsubを使っていない。となると結論としては、 仕様には最初から盛り込まれていたが、 A. 実装が追いつかず、動かない環境が多かった。(あった) B. バグっていて使える状況ではなかった。 のどちらかだね。 今後については、自分が対象とするブラウザで動作を確認出来れば使えばいいということになる。 はい、お疲れさまでした。 http://mevius.5ch.net/test/read.cgi/tech/1449440793/308
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.032s