关于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写的一个自定义弹出式对话框代码
Jan 17 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
Oct 27 Javascript
js判断手机端(Android手机还是iPhone手机)
Jul 22 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
Dec 31 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
Vue实现选择城市功能
May 27 Javascript
在vue项目中引入高德地图及其UI组件的方法
Sep 04 Javascript
微信小程序实现随机验证码功能
Dec 20 Javascript
微信小程序云开发使用方法新手初体验
May 16 Javascript
CountUp.js数字滚动插件使用方法详解
Oct 17 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
js实现弹窗猜数字游戏
Nov 26 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加密解密函数(动态加密)
2013/06/19 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
js类型检查实现代码
2010/10/29 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
2019/09/28 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
Python的subprocess模块总结
2014/11/07 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
Python语言生成水仙花数代码示例
2017/12/18 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Python标准库itertools的使用方法
2020/01/17 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
python基于opencv 实现图像时钟
2021/01/04 Python
Python读写Excel表格的方法
2021/03/02 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
英国办公用品商店:Office Outlet
2018/04/04 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
校园学雷锋活动月总结
2014/03/09 职场文书
绿色环保演讲稿
2014/05/10 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python