2014-11-25 1 views
0

a == b? do 'x': do 'y';JS 속기 두 개 이상의 작업을 수행하는 경우

이 방법은 예를 들어이 일을 작성합니다 잘 작동?

> a==b? do 'x' and do 'z' : do y ; 
+1

'?'는 속기가 아닌 if 문 (글자는 일종이지만 ...)으로 표현식으로 사용되어야합니다. 즉 'a = b? c : d' 대신'b? c() : d();'... – soktinpk

+0

이 속기를 삼항 연산자라고합니다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator –

+1

약식은 항상 Betterhand가 아닙니다. –

답변

2

쉼표는 찾고있는 것과 같습니다.

(a == b) ? (x, z) : y 

xz 그들의 값은 단지 표현에 의해 반환 될 경우 변수 일 수 있거나 실제 동작 될 수 있으며,이 경우도 그들이 실행, 즉, 평가 될 것이다.

그래서, 당신이 할 경우 :

(true == true) ? (alert('Hey'), alert('there')) : alert('Aw...') 

그것은 첫 번째 전시 "야", 두 번째 2 경고를 보여주지 - "거기가."

또한 이것은 매우 중요하다고 생각하지 않지만 완전한 표현식의 결과로 두 번째 표현식의 값 (y을 실행하면 반환되는 값)이 반환된다는 점에 유의해야합니다.

+0

'x'와'z'는 변수가 아니라 연산입니다. 이 질문은 하나 이상의 작업을 수행하는 방법을 묻습니다. –

+2

@AndersonGreen : 질문에서 주어진 의사 코드를 따르고 있습니다. 여기서'x','y' 및'z'는 원하는 표현식으로 바뀝니다. 어느 쪽이든, 변수를 읽는 것은 역시 작업입니다. –

관련 문제