关于js new Date() 出现NaN 的分析

 更新时间:2012年10月23日 01:35:27   作者:  
在一个项目中需要进行日期的格式化,后台传到前端是时间的整数(Date.getTime),当后台数据返回字符串时,发现转换日期时在ie下变成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.

相关文章

  • javascript实现电商放大镜效果

    javascript实现电商放大镜效果

    这篇文章主要为大家详细介绍了javascript实现电商放大镜效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • JS实现移动端整屏滑动的实例代码

    JS实现移动端整屏滑动的实例代码

    本文通过实例代码给大家分享了基于js 实现移动端整屏滑动效果,基本思路是检测手指滑动方向,获取手指抬起时的位置,减去手指按下时的位置,得正即为向下滑动了,具体实现代码大家参考下本文
    2017-11-11
  • js隐藏与显示回到顶部按钮及window.onscroll事件应用

    js隐藏与显示回到顶部按钮及window.onscroll事件应用

    现在大多数网站都会添加这种功能:当滚动条滚动到页面的下方时,页面的右下角会显示出来一个“回到顶部”的按钮或连接;那么,如何控制“回到顶部”按钮的显示或隐藏呢;本文介绍详细实现方法,感兴趣的你可不要走开哦
    2013-01-01
  • javascript实现简单的全选和反选功能

    javascript实现简单的全选和反选功能

    这篇文章主要介绍了javascript实现简单的全选和反选功能的相关资料,需要的朋友可以参考下
    2016-01-01
  • 一文带你搞懂JS中六种For循环的使用

    一文带你搞懂JS中六种For循环的使用

    for 循环是出现最早,也是应用最普遍的一个遍历,能够满足绝大多数的遍历。可以遍历 数组、对象、字符串。本文将详细为大家介绍JS中的六种For循环的使用,需要的可以参考一下
    2022-04-04
  • JavaScript中变量提升 Hoisting

    JavaScript中变量提升 Hoisting

    因为这个问题很是经典,而且容易出错,所以在介绍一次。哈哈。莫怪哦。
    2012-07-07
  • Bootstrap响应式侧边栏改进版

    Bootstrap响应式侧边栏改进版

    这篇文章主要为大家详细介绍了Bootstrap响应式侧边栏改进版,结合导航条和下拉菜单进行改进,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • javascript模拟C#格式化字符串

    javascript模拟C#格式化字符串

    学习C#的朋友都知道format()这个方法,本文给大家介绍在javascript中如何实现此操作,js模拟C#字符串格式化操作,需要的盆友一起学习吧
    2015-08-08
  • JS排序之冒泡排序详解

    JS排序之冒泡排序详解

    这篇文章主要为大家详细介绍了JS冒泡排序的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 微信小程序实现简易计算器

    微信小程序实现简易计算器

    这篇文章主要为大家详细介绍了微信小程序实现简易计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论