2012-01-19 3 views
1

변수를 만들 때 등호 뒤에 괄호를 사용하지 않습니다.이 javascript 변수는 무엇을 의미합니까?

왜이 코드는 등호 뒤에 괄호를 사용합니까? 아무도 이것을 설명 할 수 있습니까? 나는 등호 이후에 무슨 뜻인지 알고 싶다.

var start = (new Date).valueOf(), 

답변

1

이 방법은 밀리 초 단위로 Date 객체의 동등성을 반환과 동일합니다.

밀리 초는 1970 년 1 월 1 일 자정 (GMT)에서 Date 개체에 지정된 날짜와 시간 사이의 밀리 초 수를 나타내는 정수로 표시됩니다.

+0

하여 같은 일을 달성 할 수있다 할 당신이 valueOf() 함수 자동으로 Date 객체는 밀리 초로 변환 의미? – dgwkgg

2

paranthesis 날짜가 생성되도록, 먼저 계산 한 다음, 새로 생성 된 날짜에 valueOf를 호출 할 주위 new Date 원인.

그것은 기본적으로

var d = new Date(); 
var start = d.valueOf(); 

을하고 싶지만 한 줄에 있습니다.

그러나 (new Date()).valueOf()이어야합니다. 현재 오류가있는 것은 무엇입니까?

1

쉬운 것. new Date은 날짜를 반환합니다. 대괄호가 없으면 new Date.valueOf()이됩니다. Date에는 valueOf() 메서드가 없으므로 오류가 발생합니다.

그러나 Date의 인스턴스에는이 함수가 있습니다. 그래서 우리는 대괄호를 사용합니다. (new Date).valueOf()

var start = new Date; 
start.valueOf(); 
2

이의 의도는 다음 코드를 단축하는 것입니다

var date = new Date(); 
var start = date.valueOf(); 

을하지만 당신은 쓸 수 없습니다 :

var start = new Date().valueOf(); 

때문에 프로그래머, 생성자로 사용할 수없는 Date().valueOf() 당신 때문에 ' 중괄호를 추가해야합니다. 중괄호 안에있는 부분이 먼저 실행되고 새로운 날짜가 생성되고 valueOf()이 중괄호로 묶인 코드의 결과에 대해 호출됩니다 (구성된 날짜에 읽음). 즉, 솔루션은 우리가 귀하의 질문에있어 무엇 말했다

var start = (new Date).valueOf(); 

이 모든 결과는 밀리 초 단위로 시간 소인입니다.

1

랩핑 괄호 (new Date)는 Date 객체를 만들기위한 호출을 평가 한 다음 날짜 객체의 메서드 (예 : valueOf)를 호출합니다. 쉽게 이해하는 예는

(3 + 2) + 2; // = 7 - evaluates 5 then adds 2 

때처럼 valueOf 방법은 정의됩니다

는 Date 객체의 프리미티브 값을 반환합니다. Object.prototype.valueOf 메서드를 재정의합니다.

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

당신은 실제로

var start = +(new Date()) 
// returns the integer value of the date (in milliseconds) 
// aka the primitive value 
관련 문제