노쉬발 킵고잉/Javascript

조건부 연산자 || 삼항 연산자

테스p 2022. 12. 19. 13:33

기본형식

조건식 ? 참일때 실행되는 식 : 거짓일때 실행되는 식

3덩어리 파악하면 쉬웁니다..^^

그래서 벨류에 넣을 수 ㅇ있음

let val = 5 < 0 ? 'ture' : 'false';
console.log(val);
//flase

if문으로 바꾸면?

let val = 5 < 0 ? 'ture' : 'false';
console.log(val);
//flase

if(5<0){
	console.log('true');
}else{
	console.log('false');
}

switch(5<0){
	case true:
    	console.log('true');
        break;
     case false:
    	console.log('false');
    	break;  
}

 

가독성이 좋게 만들면 좋음 

 

그리고 조건부 연산도 중첩해서 사용ㄷ가능

let c1 = true;
let c2 = false;

let val = c1 ? c2 ? '둘 다 참' : 'c1만 참' : 'c1이 거짓';

console.log(val);
//c1만 참

1. 물음표를 먼저 찾는다. 두개면 '중첩문이구나'

2. 그래서 

let val = c1 ? c2 ? '둘 다 참' : 'c1만 참' : 'c1이 거짓';

내부에 있는 조건부 연산자.

let val = c1 ? c2 ? '둘 다 참' : 'c1만 참' : 'c1이 거짓';

 

 

이걸 중첩문 if로 한다면?

let c1 = true;
let c2 = false;


if(c1){
	if(c2 == false){
		console.log('둘다 참');
    }else{
		console.log('c1만 참');
    }
}else{
	console.log('c1 거짓이쥬?');
}

 

그래서 헷갈릴 수 있으니 괄호를 적극 이용하장~~!!

let val = c1 ? ( c2 ? '둘 다 참' : 'c1만 참') : 'c1이 거짓';

요로코롬~! 이지피지!~!!

아니면 들여쓰기로도 가능함

let val = c1;
  ? c2
  ? 'both true'
  : 'only c1 true'
  : 'c1 false so cant do c2';

 

근데 또 다른 방법도 있었다..ㅎㅎ

let c1 = true;
let c2 = false;

let val = c1 ? 'c1만 참' : c2 ? 'c2가 참' : '둘다 거짓';

console.log(val);
//c1만 참

1. 조건은 

let val = c1 ? 'c1만 참' : c2 ? 'c2가 참' : '둘다 거짓';

2.참

let val = c1 ? 'c1만 참' : c2 ? 'c2가  참' : '둘다 거짓';

3.거짓

let val = c1 ? 'c1만 참' : c2 ? 'c2가 참' : '둘다 거짓';

 

헷갈리니 묶어주랑~!

let val = c1 ? 'c1만 참' : ( c2 ? 'c2가 참' : '둘다 거짓' ) ;

 

 

연습하기 스위치로 만들거나 조건부로 바꾸거나 이프로 바꾸거나

let cond = true;
let val = cond?  'true' : 'false';
console.log(val);

 

제로초님 공부 써머리