2014-01-30 5 views
1

너무 복잡하고 추한 것 같습니다. 나는 최근에 그 표현을 아주 자주 사용 해왔고 다른 방법이 있어야합니다. y 경우 것이 truthy, x가 동일한 것입니다 논리적 or"x = y? y : x"를 수행하는 더 좋은 방법이 있습니까? JS의 구체적 내용

x = y || x; 

를 사용하여

x = y ? y : x 
+8

'if (y) x = y;'는 읽기가 쉽습니다. – Thilo

+0

실제로 y = 0 일 때마다 연산을 저장합니다. –

+1

'x = y || x]는 꽤 관용적 인 IMHO입니다 (opts = opts || {};와 같습니다) – phadej

답변

5

당신은이 작업을 수행 할 수

"그렇지 않으면 변경 X를 남겨 유효한 경우 X에 Y 할당" 배정 된 후 y로.

기타 x은 동일합니다. mdn re-introduction to javascript

UPDATE : 여기

는 설명을 섹션 다른 유형의

봐입니다 당신이 트릭을 할 비트 연산자를를 사용하려는 경우, 주를 가지고하시기 바랍니다 32 비트 정수과 함께 작동하여 위의 xy과 같은 값을 바꿉니다.

+0

하지만 둘 다 유효 할 때 어떻게됩니까? 나는 그것을 시험했다, 그것은 첫 번째 가치를 선택하는 것으로 보인다, 나는 그것을 신뢰할 수 있다고 생각하니? – Mosho

+0

내 대답을 업데이트했습니다 – axelduch

+0

고마워요. 당신은 이것이 공통적 인 것으로 보이는 것이 '| ='또는 어떤 것이 될 것이라고 생각할 것입니다. – Mosho