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


Posted in Javascript onOctober 23, 2012

此NaN不为NaN:

程序代码如下:

var date =new Date(d); 
if(!date || !date.getFullYear) { 
return; } 
return S.Date.format(d,'yyyy-mm-dd');//格式化函数,跟此文无关

在其他浏览器下正常,但是在ie下,程序报错
在ie调试器下,发现date 为NaN,如图:
关于js new Date() 出现NaN 的分析

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

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

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

代码说明if判断返回了false,控制台的结果也说明了这一点:

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

可以看出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

但是我想了一下还是不太对,又在控制台做了下面的测试:

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

 这个说明date的getFullYear是存在的,那么date是个对象

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

这个也说明了,date是个object 而不是 NaN,仅仅是ie调试器的一个问题

date.getFullYear() =》NaN
date.getDate() =》NaN
这些NaN则为真正的NaN
总结 :
在ie下 new Date('date text') 时返回的结果是一个特殊的日期对象,只是ie调试器将之显示成了NaN, 对其调用返回number的方法将都会返回NaN.

Javascript 相关文章推荐
javascript:以前写的xmlhttp池,代码
May 18 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
JavaScript String.replace函数参数实例说明
Jun 06 Javascript
JavaScript中的数学运算介绍
Dec 29 Javascript
JavaScript前端开发之实现二进制读写操作
Nov 04 Javascript
Javascript农历与公历相互转换的简单实例
Oct 09 Javascript
微信小程序 新建登录页并实现tabBar隐藏
Jun 13 Javascript
JS异步函数队列功能实例分析
Nov 28 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
Aug 16 Javascript
layui 弹出删除确认界面的实例
Sep 06 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
Nov 26 Javascript
Python版实现微信公众号扫码登陆
May 28 Javascript
js Dialog 实践分享
Oct 22 #Javascript
JS控件的生命周期介绍
Oct 22 #Javascript
重写javascript中window.confirm的行为
Oct 21 #Javascript
js indexOf()定义和用法
Oct 21 #Javascript
javascript window.confirm确认 取消对话框实现代码小结
Oct 21 #Javascript
基于jquery DOM写的类似微博发布的效果
Oct 20 #Javascript
JS的replace方法介绍
Oct 20 #Javascript
You might like
网站用php实现paypal整合方法
2010/11/28 PHP
zend framework多模块多布局配置
2011/02/26 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
php实现简单的MVC框架实例
2015/09/23 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
Python标准库os.path包、glob包使用实例
2014/11/25 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
Django 大文件下载实现过程解析
2019/08/01 Python
深入学习python多线程与GIL
2019/08/26 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
生日宴会答谢词
2014/01/09 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
平安工地汇报材料
2014/08/19 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
首席执行官观后感
2015/06/03 职场文书