2014-09-01 1 views
0

이것은 수정중인 JavaScript 파일의 맨 처음 줄입니다. 그리고 그것은 무엇을합니까? jQuery는 파일에서도 사용됩니다.자바 스크립트 파일의 첫 줄은 var w = w ||입니다. {};

var w = w || {}; 

내가 알고있는 것부터 || 이것은 모질라 설명서에서 인용 한 논리적 연산자입니다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Logical_OR

논리 연산자는 일반적으로 부울 (논리) 값과 함께 사용됩니다. 값이 같으면 부울 값을 반환합니다. 그러나 & & 및 || 연산자는 실제로 지정된 피연산자 중 하나의 값을 반환하므로 이러한 연산자가 부울이 아닌 값과 함께 사용되면 부울이 아닌 값을 반환 할 수 있습니다. w 경우

+1

가능한 복제본 [JavaScript 함수의 기본 매개 변수 값 설정] (http://stackoverflow.com/questions/894860/set-a-default-parameter-value-for-a-javascript-function) – soulcheck

+2

It w가 이미 정의되어 있는지 확인하고 그렇지 않으면 빈 객체를 할당합니다. – j08691

+0

가능한 중복 [Javascript에서 선택적 함수 매개 변수를 수행하는 더 좋은 방법이 있습니까?] (http://stackoverflow.com/questions/148901/is-there-a-better-way-to-do-optional-function- parameters-in-javascript) –

답변

2

이 줄은 줄여서 표시됩니다.

// declare w as a variable 
var w; 

// if w is already declared, leave it 
if (!w) { 
    // if not make it an empty object 
    w = {}; 
} 

전역 컨텍스트 (여기서 내가 정의되어 있음)에서 var을 사용하면 기존 전역을 덮어 쓰지 않습니다.

기본적으로, 당신은 속성을 저장할 수있는 w라는 이름으로 var가 있음을 보장합니다.

2

그것은 빈 오브젝트 w는 "truthy"이면 ww 전류 값을 설정하고, w」falsy. "

Falsy 값 NaN, null, undefined, 0, empty strings, 물론 false로 포함한다.

다른 모든 것은 사실입니다.

본질적으로 w는 객체가 아닌 경우 객체입니다.

+2

'{}'은 (는) 배열이 아닙니다. –

+0

@GergoErdosi 예, 나는 그것을 잘못 입력했습니다. 결정된. –

2

거짓이 아닌 값을 w가 포함하면 w에 w를 지정하고, 그렇지 않으면 w를 빈 객체로 설정합니다.

0

'w'가 진실인지 위증인지 확인하는 것입니다.

'w'는 임의의 값이있는 경우 falsy이다 (w || {})가 'w'반환

false 
0 
"" 
null 
undefined 
NaN 

발현을 그렇지 falsy 값 인 경우. 그렇지 않으면 빈 배열을 반환합니다. 따라서 표현식에서 'w'에 할당 할 때 : var w = w || {}; 'w'가 거짓 값이 아니며 코드에서 나중에 사용되면 오류를 throw하지 않습니다.

관련 문제