今天我用Javascript发现了一些奇怪的事:
console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
console.log(new Date(undefined)); // Invalid DateRun Code Online (Sandbox Code Playgroud)
为什么会这样?我知道null和undefined不一样,但在这种情况下我会期望相同的结果.
如果new Date使用不是字符串的单个基本参数调用它,则会将其强制转换为数字.虽然null会强迫0,undefined将成为NaN,而这是你回来的日期的内在价值.
console.log(null + ":")
console.log(Number(null))
console.log(new Date(null).valueOf())
console.log(new Date(null).toString())
console.log(undefined + ":")
console.log(Number(undefined))
console.log(new Date(undefined).valueOf())
console.log(new Date(undefined).toString())Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
686 次 |
| 最近记录: |