关于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 相关文章推荐
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
Jun 04 Javascript
javascript jq 弹出层实例
Aug 25 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
Nov 03 Javascript
查找页面中所有类为test的结点的方法
Mar 28 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
jQuery实现商品活动倒计时
Oct 16 Javascript
基于JavaScript实现轮播图代码
Jul 14 Javascript
详解js实现线段交点的三种算法
Aug 09 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
Jun 22 Javascript
javascript trie前缀树的示例
Jan 29 Javascript
策略模式实现 Vue 动态表单验证的方法
Sep 16 Javascript
JavaScript监听键盘事件代码实现
Jun 03 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 开发环境配置(Zend Studio)
2010/04/28 PHP
CentOS安装php v8js教程
2015/02/26 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
Promise扫盲贴
2019/06/24 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
Python continue语句实例用法
2020/02/06 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
C语言编程练习
2012/04/02 面试题
自动化专业毕业生自荐信
2013/11/01 职场文书
物流仓管员岗位职责
2013/12/04 职场文书
生物技术专业毕业生求职信范文
2013/12/14 职场文书
开工典礼策划方案
2014/05/23 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
Nginx内网单机反向代理的实现
2021/11/07 Servers