回答編集履歴

1

ぷち修正

2019/02/01 11:52

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- プラス記号です!
5
+ [単純加算](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus_())です!
6
6
 
7
7
  はい意味がわからんよね?
8
8
 
@@ -12,17 +12,15 @@
12
12
 
13
13
 
14
14
 
15
- JavaScriptは`+ `という書き方があります。
15
+ ご覧のよう右辺にしかが無いという書き方も存在し、その場合は単純加算として扱います。
16
16
 
17
- `+`は`A + B`みたいな使い方あるから、変な場所ぽんと使うとエラーの原因になりますが、
17
+ 一般的に`+`は`A + B`みたいに2つの値を足すのメインですが、
18
18
 
19
- りに使う分にはOK
19
+ `+ 値`場合、`値`の部分を数値(Number型)として取り扱い
20
20
 
21
21
 
22
22
 
23
- 効果は`+ 値`の値の部分がNumber型に変換されます
23
+ 要するにNumber型へのキャスト
24
-
25
- `!`が否定を表す演算子なのを利用して、`!!値`と書いてBoolean型に変換しようみたいなのと同じ意味です。
26
24
 
27
25
  ちょっとデベロッパーツールを開いて打ち込んで確認してみましょう。
28
26
 
@@ -48,7 +46,7 @@
48
46
 
49
47
  勝手に2値をとって計算する演算子として作用しないように、
50
48
 
51
- `(+ new Date('2017/04/01 00:00:00'))`という風に括弧で包む使い方多いです
49
+ `(+ new Date('2017/04/01 00:00:00'))`という風に括弧で包むと誤爆ありません
52
50
 
53
51
 
54
52
 
@@ -58,11 +56,17 @@
58
56
 
59
57
  ちなみにJavaScriptのDate型は普通に考えれば数値じゃないから
60
58
 
61
- 数値`INTERVAL = 1000`を足したり引いたりなんて一見できそうもないように見えます。
59
+ 数値`INTERVAL = 1000`を足したり引いたりなんて一見できなさそう
62
60
 
63
61
 
64
62
 
65
63
  しかし、Date型は内部で[Unix時刻](https://ja.wikipedia.org/wiki/UNIX%E6%99%82%E9%96%93)を持っており、数値として計算したいよと言った時にはすぐUnix時刻を取り出して計算に利用することが可能です。
64
+
65
+
66
+
67
+ なので`+ new Date('2017/04/01 00:00:00')`としてNumber型へのキャストを試みた場合、
68
+
69
+ 瞬時にNumber型のUnix時刻に変換されます。
66
70
 
67
71
 
68
72
 
@@ -100,4 +104,6 @@
100
104
 
101
105
  ただし、Date周りはブラウザでちょっとずつ動きが変わると思うので、
102
106
 
103
- ブラウザによっては動作しなくなるかもしれませんね。
107
+ この書き方はブラウザによっては動作しなくなるかもしれませんね。
108
+
109
+ Chromeの場合は動作するようです。