为什么可以在JavaScript中减去Date对象?是否有任何形式的运算符重载?

Prz*_*k B 4 javascript overloading date operator-keyword

为什么下面的代码真正起作用?

var firstDate = new Date();

// some time passing here

var secondDate = new Date();

// Difference seems to contain difference in miliseconds. 

var difference = secondDate - firstDate;
Run Code Online (Sandbox Code Playgroud)

我相信,我得到的等同于secondDate.getTime() - firstDate.getTime()。唯一的问题是,在后台如何转换为毫秒数?这是某种运算符重载吗?

650*_*502 5

运算符-将操作数转换为数字(例如检查"12"-3)。date对象定义了一个数字转换.valueOf(),该转换返回毫秒数。

另请参见例如+(new Date)