未定义的时刻与null的时刻

ris*_*hat 13 javascript date momentjs

如果想知道原因

> moment(undefined).isBefore()
true
Run Code Online (Sandbox Code Playgroud)

> moment(null).isBefore()
false
Run Code Online (Sandbox Code Playgroud)

对这种行为有什么合理的解释吗?

Bri*_*ian 13

moment(undefined)相当于moment(),它假定初始状态为当前日期/时间.

moment(null)另一方面,不是一件事.它无效(至少不在我正在玩的版本中),并且没有未记录的结果.

当然,您可以阅读源代码,并发现isBefore不检查undefined任何一个.换句话说,momentjs并不期望自己以这种方式使用两次.