欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【关于js new Date() 出现NaN 的分析】,下面是详细的讲解!
关于js new Date() 出现NaN 的分析
此NaN不为NaN:
程序代码如下:
var date=new Date(d);
if(!date || !date.getFullYear) {
return;
}
return S.Date.format(d,'yyyy-mm-dd');//格式化函数,跟此文无关
在其他浏览器下正常,但是在ie下,程序报错
在ie调试器下,发现date 为NaN,如图:

如果是NaN,那么if判断会返回true,会 return "",但是诡异的一幕发生了,

代码说明if判断返回了false,控制台的结果也说明了这一点:
可以看出date=NaN,但是 !date 为false,!NaN 为 true,我的第一反应,ie下JS的Bug?
然后又做了一些测试
var date=NaN;
alert(!date) //返回true
var date=new Date('2011-1-1');
alert(!date) //返回false
但是我想了一下还是不太对,又在控制台做了下面的测试:
这个说明date的getFullYear是存在的,那么date是个对象

这个也说明了,date是个object 而不是 NaN,仅仅是ie调试器的一个问题
date.getFullYear()=》NaN
date.getDate()=》NaN
这些NaN则为真正的NaN
总结 :
在ie下 new Date('date text') 时返回的结果是一个特殊的日期对象,只是ie调试器将之显示成了NaN, 对其调用返回number的方法将都会返回NaN.
关于关于js new Date() 出现NaN 的分析的用户互动如下:
相关问题:js newDate和Date的区别?
答:new Date() 返回值是一个对象 Date() 是一个函数,返回值是一串字符串。 new Date() == Date() //返回的是true; new Date() === Date() //返回的是false; >>详细
相关问题:js new Date()
答:JS中new Date()一个对象后,你要取时间要从这个对象里面的属性里面取,对象的属性很多,格式也很多,你可以取到你要取的格式。 >>详细
相关问题:js new Date() 格式
答:1.Date 对象用于处理日期和时间。 创建 Date 对象的语法: var myDate=new Date() Date 对象会自动把当前日期和时间保存为其初始值。 2.参数形式有以下5种: new Date("month dd,yyyy hh:mm:ss"); new Date("month dd,yyyy"); new Date(yyyy,mth... >>详细
- 【Array】js中更短的 Array 类型转换-类型转换
- 【ExtJs】ExtJs 表单提交登陆实现代码-表单提交-
- 【Ajax】jQuery 学习第六课 实现一个Ajax的TreeVi
- 【extjs】extjs每个组件要设置唯一的ID否则会出错
- 【focus】JavaScript使用focus()设置焦点失败的解
- 【bootstrap3】基于bootstrap3和jquery的分页插件
- 【hover】jQuery控制图片的hover效果(smartRollo
- 【ajax更新数据库】ajax异步刷新实现更新数据库-
- 【div】div浮层 滚动条移动 位置保持不变的4种方
- 【AngularJS】举例讲解AngularJS中的模块-模块
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
