关于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.ui.dialog 增加“自动记住关闭时的位置”的功能
Nov 24 Javascript
13个绚丽的Jquery 界面设计网站推荐
Sep 28 Javascript
33个优秀的 jQuery 图片展示插件分享
Mar 14 Javascript
JQuery each打印JS对象的方法
Nov 13 Javascript
Function.prototype.apply()与Function.prototype.call()小结
Apr 27 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
May 17 Javascript
分分钟玩转Vue.js组件
Oct 25 Javascript
JavaScript实现分页效果
Mar 28 Javascript
js实现华丽的九九乘法表效果
Mar 29 Javascript
react项目实践之webpack-dev-serve
Sep 14 Javascript
Vue3.0结合bootstrap创建多页面应用
May 28 Javascript
javascript实现获取中文汉字拼音首字母
May 19 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
农民和部队如何穿矿
2020/03/04 星际争霸
JavaScript 学习笔记(六)
2009/12/31 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
微信小程序日历插件代码实例
2019/12/04 Javascript
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
布同 统计英文单词的个数的python代码
2011/03/13 Python
在Python中编写数据库模块的教程
2015/04/29 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
请解释一下webService? 如何用.net实现webService
2014/06/09 面试题
.NET是怎么支持多种语言的
2015/02/24 面试题
人事主管的岗位职责
2013/11/16 职场文书
经济国贸专业求职信
2014/06/18 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
回复函格式及范文
2015/07/14 职场文书
导游词之江西赣州
2019/10/15 职场文书
python实现简单区块链结构
2021/04/25 Python
Python自动化爬取天眼查数据的实现
2021/06/15 Python
python中使用redis用法详解
2022/12/24 Redis