2

我知道 JavaScript 不会像 C 或 C++ 那样以 NULL 终止字符串,但我遇到了一个我无法解释的情况。

查看以下代码(在 Node.js v0.10.5 中执行):

> new Date('123')

Fri Jan 01 123 00:00:00 GMT+0100 (CET) // UNIX epoch : -58285702800000

> new Date('123\056')

Fri Jan 01 123 00:00:00 GMT+0100 (CET) // UNIX epoch : -58285702800000

> new Date('123\0456')

Tue Jun 01 123 00:00:00 GMT+0200 (CEST) // UNIX epoch : -58272660000000

> new Date('123\0567')

Thu Jul 01 123 00:00:00 GMT+0200 (CEST) // UNIX epoch : -58270068000000

> new Date('123\0999')

Fri Jan 01 123 00:00:00 GMT+0100 (CET)  // UNIX epoch : -58285702800000

> new Date('123\0555')

Sat May 01 123 00:00:00 GMT+0200 (CEST) // UNIX epoch : -58275338400000

> new Date('123\0655')

Sat Jan 01 12355 00:00:00 GMT+0100 (CET) // UNIX epoch : 327718911600000

我不确定这里发生了什么,有人可以向我解释一下吗?

有时,NULL 字节后的整数似乎定义了日期的月份,但月份并不总是对应于以下数字。

4

1 回答 1

2

这些是 3 位八进制转义,而不是空字节。所以例如'123\0456'是真的'123%6'

于 2013-11-09T11:42:30.483 回答