2012-02-29 4 views
2
x = (typeof x != 'undefined' && x instanceof Array) ? x : []; 

x가 정의되고 배열이면 모든 것을 처리한다는 것을 알고 있습니까? 그리고 : 정의되지 않았거나 배열이 아니면 [] 할 것입니다. [] 무엇입니까?이 속기 진술은 실제로 어떻게 작동합니까? "x = (typeof x! = 'undefined'&& x instanceof Array)? x : [];"

누구나 내가 어떻게 작동하는지, 그리고 다른 속기 기법에 대한 예제를 얻을 수 있는지 또는 여기에서 무슨 일이 일어나고 있는지 설명 할 수 있습니까?

난 그냥 정말

+2

이 '[]'*가 배열 리터럴 아니다. [MDN JavaScript Guide] (https://developer.mozilla.org/en/JavaScript/Guide), 특히 [리터럴] (https://developer.mozilla.org/en/JavaScript/Guide/)을 읽어 보시기 바랍니다. 값 % 2C_Variables % 2C_and_Literals # 리터럴). –

+2

'typeof x! = 'undefined'&&'redundant btw –

답변

2

[]가 빈 배열 배열을 만드는 방법을 이해 해달라고.

따라서 xundefined이거나 배열이 아닌 경우 빈 배열로 설정됩니다. 기본 인수

http://msdn.microsoft.com/en-us/library/windows/apps/be21c7hw%28v=vs.94%29.aspx

또 다른 유용한 속기는 다음과 같습니다 :

조건부 (삼항)에 대한 자세한 정보는 여기 운영자이 있습니다

if (!(typeof x != 'undefined' && x instanceof Array)) { 
    x = []; 
} 

: 이것은와 동일

function (x) { 
    x = x || 7; 
} 

이것은 x == false (즉, x == false) 인 경우 x에서 7으로 설정됩니다. x *이 nullundefinedfalse, '' (빈 문자열) 또는 0)

+0

그래서 x가 배열 인 경우 함수를 실행하고 싶다면 x = (typeof x! = 'undefined'&& x instanceof Array)? functionName(); : []; 그 맞습니까? – user1082764

+0

@ user1082764 :'functionName()'의 반환 값을'x'에 * 할당하고자 할 때만. 조건부 연산자는 변수 할당에만 사용해야합니다. 대신에 보통의'if' 문을 사용하십시오. (예전의 질문에 대한 답변에서 말했듯이) (http://stackoverflow.com/questions/9490555/how-can-i-create-an-array-if-it -doesnt-exist-and-run-a-jquery-function-after-it)). –

+0

이것은 매우 도움이되었습니다. 나는 여기에 질문을했지만이 철저한 답변을 얻지 못했습니다. 고맙습니다! – user1082764