2012-05-12 2 views
4

다음 자바 스크립트 구문의 의미는 무엇입니까? 전체 구문을 설명해주세요.속기 구문으로 혼동 : x> 0? 1 : -1;

var x = 0; 
x > 0 ? 1 : -1; // confused about this line 
alert(x); 
+0

[1] (링크가 설명) [1] : http://stackoverflow.com/questions/1788917/javascript-ternary-operator –

+7

그것은 아무것도하지 않는 ... – gdoron

+1

@DhaivatPandya 공식 이름은 조건부 연산자입니다. 삼항 연산자는 세 개의 피연산자가있는 연산자입니다. –

답변

0

-1이됩니다. 이를 ternary operator이라고합니다.

기본적으로 두 번째 줄의 시작 부분에 x=을 넣으려는 경우이를 확장합니다.

if(x>0){ 
    x = 1 
} else { 
    x = -1 
} 
+7

질문의 코드가 확장되지 않습니다. 그 성명서에는 아무런 배정도 없습니다. –

+0

참으로, 나는 그가 답답하다는 것을 의미한다고 생각했다. 대답을 – CambridgeMike

+1

+1했다. 답답한 드라이브를 상쇄하기 위해서 downvoter –

19

그 자체는 의미가 없습니다. 당신은 x의 값을 0으로 알려줍니다. 그게 전부입니다. 두 번째 문장은 무언가에 지정하지 않으면 의미가 없습니다. 그러나 당신이 이것을했을 :

var x=0; 
var y = x > 0 ? 1 : -1; 
alert(y); 

당신은 -1을 얻었을 것입니다.

어설 x > 0 경우 :

The Conditional Operator

는, 문, 그것은 기본적으로 말한다면위한 속기이다. 그렇다면 1을 지정하고 그렇지 않으면 -1을 지정하십시오.

또는보다 일반적인 형태에

:

CONDITION ? VALUE_IF_TRUE : VALUE_IF_FALSE; 

장소 :

  • CONDITION이 - (심지어 타입 저글링 후) 부울로 평가 아무것도 할 수있다.
  • VALUE_IF_TRUE - CONDITIONTRUE이라고 주장 된 경우 반환되는 값입니다.
  • VALUE_IF_FALSE - CONDITIONFALSE이라고 주장 된 경우에 반환되는 값입니다.
+1

이것을 확장하기 위해'y ='줄은'x> 0'을 테스트한다. 만약 그것이 사실이라면,'y'는'1'을, 거짓이라면'y'는'-1'을 할당 받게됩니다. –

+0

thnx 진실은 매우 도움이되었습니다. – osami

+0

@DavidHeffernan : 네 말이 맞아. 그것은 PHP에서 삼항이라고합니다. –

1

이는 삼항 연산자는 IF 문 같은 그것의합니다 (?)

생각해이다.

'?' if 문의 조건입니다. 즉시 ':'앞에 오는 것은 명령문이 참일 경우 실행되거나 할당 될 것입니다. ':'다음에 명령문이 거짓 일 때 실행/지정 될 것입니다.

그러나 세 번째 연산자에서 아무 것도 지정하지 않았기 때문에 코드에 0이 표시됩니다.

기본적으로 코드는 말할 수도 있습니다. 조건 연산자입니다
x = 0; var y = x > 0 ? 1 : -1; alert(y);

+0

크랭크 한 드라이브를 상쇄시키는 +1 –

2

:
x = 0; alert(x); // this would alert 0

당신은이를 수정해야합니다. 세 개의 피연산자가 있기 때문에 삼항 연산자입니다. 종종 삼항 연산자라고도하지만 세 개의 피연산자가있는 연산자는 삼항 연산자이므로이 용어는 다소 느슨합니다.그냥 그렇게 일반적으로 사용되는 삼항 연산자입니다.

어떤 의미입니까? a이 참으로 평가하는 경우 표현

a?b:c 

그렇지 않으면 표현식이 c로 평가 b로 평가합니다. 에서 [삼항 연산자]의