> 웹 프론트엔드 > JS 튜토리얼 > js new Date()_javascript 기술에서 NaN 발생 분석

js new Date()_javascript 기술에서 NaN 발생 분석

WBOY
풀어 주다: 2016-05-16 17:49:02
원래의
1507명이 탐색했습니다.

이 NaN은 NaN이 아닙니다.

프로그램 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다. :

var date =new Date(d);
if(!date || !date.getFullYear) {
return

}
return S.Date.format( d,'yyyy-mm-dd');//형식 지정 기능은 이 글과 관련이 없습니다


다른 브라우저에서는 잘 작동하지만 IE에서는 잘 작동합니다. , 프로그램에서 오류를 보고합니다
IE 디버거에서 그림과 같이 날짜가 NaN인 것으로 확인됩니다.


NaN이면 if 판단이 true 또는 ""를 반환하는데 이상한 장면이 발생했습니다.

코드는 if 판단이 false를 반환함을 보여주며 콘솔 결과도 이를 보여줍니다.



날짜=NaN이라고 볼 수 있지만! date는 false입니다. NaN은 true입니다. 제 첫 반응은 JS 버그인가요?입니다.
그런 다음 몇 가지 테스트를 했습니다

코드를 복사합니다 코드는 다음과 같습니다.

var date = NaN;
alert(!date) //true 반환
var date = new Date('2011-1-1')
alert(!date) //false 반환

그런데 곰곰이 생각해보니 여전히 맞지 않아서 콘솔에서 다음과 같은 테스트를 해봤습니다.

이는 날짜의 getFullYear가 존재하고 날짜가 객체임을 나타냅니다.

이는 또한 date가 NaN이 아닌 객체라는 것을 보여줍니다. 이는 단지 IE 디버거의 문제일 뿐입니다

date.getFullYear() =》NaN
date.getDate() =》NaN
이 NaN은 실제 NaN입니다.
요약:
새 날짜(ie 아래의 '날짜 텍스트')는 특별한 날짜 객체이지만 IE 디버거는 이를 NaN으로 표시하고 숫자를 반환하는 모든 메서드는 NaN을 반환합니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿