JXA:当作为参数传递给库模块时,数字会被更改?

时间:2017-08-17 17:13:08

标签: jxa

我正在尝试将数字(以ms为单位的日期)传递给库模块中的函数。数字搞砸了!

这是一个简单的外观(函数MailUtils.showNum只有一行,相同的日志调用如下所示):

n = Number(todayMs - mbRetMs);
Logger.logDebug("Num = " + n + "; as Date = " + new Date(n));
MailUtils.showNum(n);

Log:
/* Num = 1500396760628; as Date = Tue Jul 18 2017 12:52:40 GMT-0400 (EDT) */
/* Num = 1453174324; as Date = Sat Jan 17 1970 14:39:34 GMT-0500 (EST) */

严重???

*正在发生什么?看起来它以某种方式计算出它是一个日期并传递了原始日期(从ms开始计算的日期)?

1 个答案:

答案 0 :(得分:0)

LOL,Int32溢出#Fail。你所看到的是你原来的[64位]整数的32个最低有效位;高位都被剥离了。

奇怪的是,因为JS在内部使用Double;可能是JXA中的一个错误。 (它有很多。)

如果您喜欢JavaScript,我强烈建议使用Node.js。相比之下,JXA是垃圾,而OSA技术现在处于维护模式,我认为它不会被修复。