关于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 新手24条实用建议[TUTS+]
Jun 21 Javascript
15款优秀的jQuery导航菜单插件分享
Jul 19 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
Mar 14 Javascript
Javascript图像处理—为矩阵添加常用方法
Dec 27 Javascript
原生JS实现美图瀑布流布局赏析
Sep 07 Javascript
简单学习JavaScript中的for语句循环结构
Nov 10 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
js限制输入框只能输入数字(onkeyup触发)
Sep 28 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
微信小程序实现签字功能
Dec 23 Javascript
Vue中this.$nextTick的作用及用法
Feb 04 Javascript
JavaScript实现鼠标经过表格某行时此行变色
Nov 20 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合并数组+与array_merge的区别分析
2010/08/01 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
安装dbus-python的简要教程
2015/05/05 Python
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
django反向解析和正向解析的方式
2018/06/05 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
趣味运动会活动方案
2014/02/12 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android