typeof == "undefined"比较日期,新的日期,数学.这个简单的js代码有什么问题?
typeof !== "undefined", comparing dates, new Date, Math.min / What is wrong with this simple js code?
这段代码在我的nodeJS服务器上。每次服务器到达它时,它都会崩溃。不知道怎么了…有人能帮帮我吗?
dateArray[11]
、dateArray[12]
、dateArray[13]
为空或为Date值。
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;
}
}
既然你说dateArray[11], dateArray[12]和dateArray[13]要么是空的,要么是日期值
不能调用空值或未定义值的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;
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"、"string"、"boolean"、"object"、"function"answers"undefined"。括号在typeof语法中是可选的。
相关文章:
- 比较从函数和生成的日期对象
- Json数据包含日期和时间格式
- Javascript日期格式类似于ISO,但本地
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何在JavaScript中延长当前日期
- 铬:“;未捕获的语法错误:意外的标记:"
- 两位数的月份日期验证
- "日期“;AJAX请求返回的类型值未定义
- Bootstrap日期选择器键盘导航:选择日期时"突出显示”;
- 你能用“-"而不是“/"使用JavaScript短日期格式
- 创建javascript日期的最简单方法;2011年4月18日"1980年6月1日”;总体安排
- 得到"无效日期“;当仅在Javascript中在IE 11中传递动态日期时
- "ReferenceError:$未定义“;尝试使用日期时间选择器时
- 如何写日期|日期:"MM”;在ng类中
- "a.getFullYear不是函数“”;当试图获得日期差异时
- MVC控制器返回JSON对象日期属性"Now"“帮助”
- "重置Javascript中的日期值”;
- 分析javascript中的日期选择器日期"dd月字符串,yyyy”;
- jQuery日期选择器"在“更新”之后;事件或同等事件
- JavaScript正则表达式帮助:文本字符串中以"开头的行;在某某日期,一些其他东西写了"