关于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 相关文章推荐
Google Suggest ;-) 基于js的动态下拉菜单
Oct 11 Javascript
分享别人写的一个小型js框架
Aug 13 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
Mar 02 Javascript
不能不知道的10个angularjs英文学习网站
Mar 23 Javascript
纯JS实现轮播图
Feb 22 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
Aug 28 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
Sep 21 Javascript
React-Native之定时器Timer的实现代码
Oct 04 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
Feb 22 Javascript
AngularJS 前台分页实现的示例代码
Jun 07 Javascript
原生JS实现的简单小钟表功能示例
Aug 30 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 jQuery
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在线代理转向代码
2012/05/05 PHP
php开发文档 会员收费1期
2012/08/14 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
jquery创建div 实现代码
2009/04/27 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
详解Python中for循环的使用
2015/04/14 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
python操作kafka实践的示例代码
2019/06/19 Python
flask实现验证码并验证功能
2019/12/05 Python
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
中英文自我评价语句
2013/12/20 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
汽车促销活动方案
2014/03/31 职场文书
新教师培训心得体会
2014/09/02 职场文书
Python进度条的使用
2021/05/17 Python
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers