最近我在玩JS,发现了一些有趣的东西。这是我写入Chrome控制台的内容:
today = new Date()
-> Mon Apr 29 2013 13:06:01 GMT+0200 (CEST)
DAY = 1000 * 3600 * 24
-> 86400000
today - 2 * DAY
-> 1367060761452
today + 2 * DAY
-> "Mon Apr 29 2013 13:06:01 GMT+0200 (CEST)172800000"
我想知道为什么在执行加法或减法操作时,会得到不同类型的答案。当我执行以下操作时:
today - (-2) * DAY
一切都正常。是意识形态问题,还是一个bug?
+
可以根据上下文作为加法或字符串拼接操作符。(如果你有一个字符串值并尝试向它“添加”任何内容,第二个参数通常会被转换为字符串,而不是执行加法操作,从而进行字符串拼接。) - CBroe