关于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 相关文章推荐
JQuery获取表格数据示例代码
May 26 Javascript
理解javascript回调函数
Dec 28 Javascript
使用vue.js开发时一些注意事项
Apr 27 Javascript
AngularJs $parse、$eval和$observe、$watch详解
Sep 21 Javascript
Vue响应式原理详解
Apr 18 Javascript
基于对象合并功能的实现示例
Oct 10 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
Jan 08 Javascript
JavaScript事件发布/订阅模式原理与用法分析
Aug 21 Javascript
JavaScript实现表单注册、表单验证、运算符功能
Oct 15 Javascript
详解解决小程序中webview页面多层history返回问题
Aug 20 Javascript
vue项目中引入Sass实例方法
Aug 27 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
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错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
js控制input输入字符解析
2013/12/27 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python接口开发实现步骤详解
2020/04/26 Python
python爬虫容易学吗
2020/06/02 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
怎样写留学自荐信
2013/11/11 职场文书
《长城》教学反思
2014/02/14 职场文书
住宅使用说明书
2014/05/09 职场文书
销售员试用期自我评价
2014/09/15 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
朋友聚会开场白
2015/06/01 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers