关于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动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
jquery 插件学习(六)
Aug 06 Javascript
javascript实现动态加载CSS
Jan 26 Javascript
javascript 数组操作详解
Jan 29 Javascript
js 截取或者替换字符串中的数字实现方法
Jun 13 Javascript
js实现String.Fomat的实例代码
Sep 02 Javascript
jQuery编写网页版2048小游戏
Jan 06 Javascript
前端分页功能的实现以及原理(jQuery)
Jan 22 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
Oct 31 Javascript
微信小程序下拉框组件使用方法详解
Dec 28 Javascript
深入浅析JavaScript中的in关键字和for-in循环
Apr 20 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
Jun 11 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_push 数组函数
2009/12/26 PHP
使用PHP备份MYSQL数据的多种方法
2014/01/15 PHP
php中动态调用函数的方法
2015/03/16 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
vue mixins组件复用的几种方式(小结)
2017/09/06 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
python 使用get_argument获取url query参数
2017/04/28 Python
Python书单 不将就
2017/07/11 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
详解python 注释、变量、类型
2018/08/10 Python
python递归全排列实现方法
2018/08/18 Python
python中的tcp示例详解
2018/12/09 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
python如何停止递归
2020/09/09 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
如何用python批量调整视频声音
2020/12/22 Python
利用纯CSS3实现文字向右循环闪过效果实例(可用于移动端)
2017/06/15 HTML / CSS
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
优秀教师个人总结
2015/02/11 职场文书
小学教师工作总结2015
2015/04/07 职场文书
小学运动会加油词
2015/07/18 职场文书
如何写好活动总结
2019/06/21 职场文书