나는 몇 곳 에서 이것을 보았다
function fn() {
return +new Date;
}
그리고 날짜 객체가 아닌 타임 스탬프를 반환한다는 것을 알 수 있지만 더하기 기호가 무엇을하고 있는지에 대한 문서를 찾을 수 없습니다.
누구든지 설명 할 수 있습니까?
답변
이는 + 단항 연산자이며 다음과 같습니다.
function(){ return Number(new Date); }
참조 :
http://xkr.us/articles/javascript/unary-add/
답변
JavaScript는 느슨하게 입력되었으므로 특정 상황에서 유형 강제 / 변환을 수행합니다.
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
다른 예 :
>>> +new Date()
1224589625406
>>> +"3"
3
>>> +true
1
>>> 3 == "3"
true
답변
JavaScript 날짜는 문자열로 작성할 수 있습니다.
2015 년 9 월 10 일 목요일 12:02:54 GMT + 0530 (IST)
또는 숫자로 :
1441866774938
숫자로 작성된 날짜는 1970 년 1 월 1 일 00:00:00 이후 밀리 초 수를 지정합니다.
귀하의 질문에 따르면 할당 연산자 ‘=’뒤에 ‘+’를 추가하고 Date를 동일한 숫자 값으로 변환하면 문제가 해결됩니다.
Number (new Date ())와 같은 Number () 함수를 사용하여 동일하게 달성 할 수 있습니다.
var date = +new Date(); //same as 'var date =number(new Date());'
답변
다음은 “단항 추가”연산자와 관련된 사양 입니다. 그것이 도움이되기를 바랍니다 …
답변
더 많은 정보를 제공하기 위해 :
두 날짜의 시차를 찾으려면 다음과 같이하십시오.
var d1 = new Date("2000/01/01 00:00:00");
var d2 = new Date("2000/01/01 00:00:01"); //one second later
var t = d2 - d1; //will be 1000 (msec) = 1 sec
typeof t; // "number"
이제 d1-0의 유형을 확인하면 숫자이기도합니다.
t = new Date() - 0; //numeric value of Date: number of msec's since 1 Jan 1970.
typeof t; // "number"
+는 날짜를 숫자로 변환합니다.
typeof (+new Date()) //"number"
그러나 유사하게 취급 되지0 + new Date()
는 않습니다 . 문자열로 연결됩니다.
0 + new Date() // "0Tue Oct 16 05:03:24 PDT 2018"
답변
그것은이다 단항 추가 전화 할 때, 운영자도 명시 적 숫자 변환에 사용 +new Date()
, 그것을 사용하여 해당 개체의 숫자 값을 얻기 위해 시도하는 valueOf()
우리가에서 문자열을 얻을처럼toString()
new Date().valueOf() == (+new Date) // true
답변
다음과 정확히 동일합니다.
function () {return 0 + new Date; }
그 결과는 다음과 같습니다.
function () {return new Date (). getTime (); }