回答編集履歴
1
ぷち修正
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
|
-
|
15
|
+
ご覧のように右辺にしか値が無いという書き方も存在し、その場合は単純加算として扱います。
|
16
16
|
|
17
|
-
`+`は`A + B`みたい
|
17
|
+
一般的に`+`は`A + B`みたいに2つの値を足すのがメインですが、
|
18
18
|
|
19
|
-
|
19
|
+
`+ 値`の場合、`値`の部分を数値(Number型)として取り扱います。
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
|
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の場合は動作するようです。
|