Javascript Date 适用于临时变量,但在首次分配给变量时失败

Javascript Date works with temporaries but fails when first assigned to a variable

本文关键字:变量 分配 失败 Date 适用于 Javascript      更新时间:2023-09-26

日期比较似乎适用于临时变量,但当一个或两个日期首次分配给局部变量时失败。 这对我来说似乎很奇怪,我能错过什么?

var before = Date(2012,11,9)
console.log(new Date(2012,11,10) > before)  // -> false
console.log(new Date(2012,11,10) > new Date(2012, 11, 9)) // -> true

我从 Atom 编辑器和 Parse 上复制了这个,它也在 Node.js 上。

Atom Runner: hacks.js
false
true
Exited with code=0 in 0.084 seconds

有什么想法吗?

将日期分配给before时缺少"new"关键字。

使用以下命令重试此操作:

var before = new Date(2012,11,9);

这将生成一个字符串

Date(2012,11,9)

这将生成一个 Date 对象

new Date(2012,11,9)

您缺少new关键字。在不new的情况下调用 Date 构造函数将返回一个字符串:

JavaScript Date 对象只能通过调用 JavaScript Date

作为构造函数来实例化:将其作为常规函数(即没有 new 运算符)调用它将返回一个字符串而不是 Date 对象;与其他 JavaScript 对象类型不同,JavaScript Date 对象没有文字语法。

比较:

var before = Date(2012,11,9)
console.log(typeof before) // 'string'

与:

var before = new Date(2012,11,9)
console.log(typeof before) // 'object'

这行得通,我在声明前面放了一个新

var before = new Date(2012,11,9);
console.log(new Date(2012,11,10) > before);  
console.log(new Date(2012,11,10) > new Date(2012, 11, 9)); 
X

> X 总是假的。2012-11-10 比 2012-11-09 更新。这是年,月,日顺序!