[javascript] 더하기 기호는 ‘+ new Date’에서 무엇을합니까

나는 몇 에서 이것을 보았다

function fn() {
    return +new Date;
}

그리고 날짜 객체가 아닌 타임 스탬프를 반환한다는 것을 알 수 있지만 더하기 기호가 무엇을하고 있는지에 대한 문서를 찾을 수 없습니다.

누구든지 설명 할 수 있습니까?



답변

이는 + 단항 연산자이며 다음과 같습니다.

function(){ return Number(new Date); }

참조 :
http://xkr.us/articles/javascript/unary-add/

MDN에서 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus


답변

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 (); }