2010-07-23 2 views
11

내가 JSON 연구에 나의 여행에이 코드 조각을 발견 :JavaScript에서 "? :"표기법이란 무엇입니까?

var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray; 

내가 ?: 표기 점점 더보고 있어요. 나는 그것을보기 위해 무엇이 불려지는지조차 모른다! 누구든지 나를 위해 좋은 자원을 가르쳐 주시겠습니까? (btw, 나는 !=의 의미를 안다).

+1

[자바 스크립트의 경우 대체] (http://stackoverflow.com/questions/1688337/javascript-if-alternative) –

+0

[자바 스크립트의 물음표] (http://stackoverflow.com/questions) 중복 가능/1771786/question-in-javascript) – Bergi

답변

23

Conditional (ternary) Operator이라고합니다. 그것은 본질적으로 응축 된 if-else입니다.

그래서이 :

var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray; 

...

이 같은 경우 : conditional operator라고

var array; 
if (typeof objArray != 'object') { 
    array = JSON.parse(objArray); 
} else { 
    array = objArray; 
} 
+19

사실 그것은 조건부 연산자로 호출되지만 3 자 연산자입니다. 삼항 연산자는 3 개의 입력을받는 연산입니다. 그러나 여러 상황에서 삼항 연산자는 조건식이 그 언어에서 가장 유명하거나 때로는 유일한 삼항 연산자이기 때문에 조건부와 동의어가되었습니다. 예를 들어 ++는 단항 연산자라고 부르고 +/-는 2 진수 연산자라고합니다. 그러나 이것은 의미론, 좋은 대답, 플러스 1입니다. :) –

+1

@Razor - Nice addition; 또한 [조건 연산자 (? :)]의 ECMAScript 5 사양 (http://ecma262-5.com/ELS5_Section_11.htm#Section_11.12)을 살펴보십시오. –

+0

새로운 것을 배웠습니다. 감사합니다 면도기! –

10

: conditiontrue입니다

condition ? expr1 : expr2 

경우, 연산자는 expr1의 값; 그렇지 않으면 expr2의 값을 반환합니다.

result = (condition) ? (true value) : (false value); 

장소를 당신이 원하는 무엇을 적 : -

+0

Javascript에서 유일한 삼항 연산자의 이름을 정확히 나타 내기 위해 +1. –

12

그것은 삼항 조건 연산자의 기본적 ,

if (condition) { 
    a = 4; 
} 
else { 
    a = 5; 
} 

그냥 같이 읽어

a = condition ? 4 : 5; 
+0

JS의 유일한 삼항 연산자 인 [JS 조건부 연산자] (https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special_Operators/Conditional_Operator)는 대답의 대답과 같이 면도기 포인터를 출력합니다. . –

2

된다 3 명의 연산자.

많은 사람들이 IF .. THEN 구조와 비교해 보았습니다.

관련 문제