此代码位于我的nodeJS服务器上。每次服务器到达它时,它都会崩溃。不知道出了什么问题......有人能帮助我吗?
dateArray[11]
,dateArray[12]
和dateArray[13]
为空或为日期值。
var dateArray11 = null;
var tempDateValue = "";
if ((typeof dateArray[11] !== "undefined") || (typeof dateArray[12] !== "undefined") || (typeof dateArray[13] !== "undefined")) {
dateArray11 = new Date(Math.min((dateArray[11].getTime()), (dateArray[12].getTime()), (dateArray[13].getTime())));
if (dateArray11.getTime() === dateArray[11].getTime()) {
tempDateValue = 11;
}
if (dateArray11.getTime() === dateArray[12].getTime()) {
tempDateValue = 12;
}
if (dateArray11.getTime() === dateArray[13].getTime()) {
tempDateValue = 13;
}
}
答案 0 :(得分:0)
typeof(new Date())始终会为您提供
object
,并且您将其与String
进行比较,因为typeof(" undefined")为String
。
console.log(typeof 123)// return number
console.log(typeof new Date())// return object
console.log(typeof 'hola')//return string
typeof运算符将类型信息作为字符串返回。 typeof返回有六种可能的值:" number," "串," "布尔型," "对象," "功能"并且"未定义。" 括号在语法类型中是可选的。
答案 1 :(得分:0)
因为你说dateArray [11],dateArray [12]和dateArray [13]是空的或者是Date值。
您无法调用空值或未定义值的getTime()函数。
在调用之前,应检查dateArray [11],dateArray [12]和dateArray [13]是否为日期对象。 你可以在这个答案中看到如何检查: https://stackoverflow.com/a/643827/3442014
编辑: 这是我对你所做的事情的准备:
var dateArray=[];
dateArray[11]=new Date("2011/06/31");
dateArray[12]=new Date("2011/06/26");
dateArray[13]="";
var tempDateValue = "";
var dates=[];
if (dateArray[11] instanceof Date) dates.push(dateArray[11]);
if (dateArray[12] instanceof Date) dates.push(dateArray[12]);
if (dateArray[13] instanceof Date) dates.push(dateArray[13]);
var min = new Date(Math.min.apply(null,dates));
var tempDateValue = dates.map(Number).indexOf(+min) + 11;