본문 바로가기

JavaScript

'?' 연산자,삼항 연산자

'?' 란?
  • 조건부 연산자
  • 물음표 연산자 라고도 불리며 피연산자 가 3개 이기 때문에 삼항 연산자 라고도 불린다.

 

  • 기본문법
let res = 조건 ? true : false

 

  • 예시
let name = '홍길동'

let res = ( name === '홍길동' ) ? '홍길동'//true : '누구세요'//false

 

  • null 병합 연산자
  • 자바 스크립트 에서는 '??' 연산자가 null 병합 연산자로 사용된다.
    이는 null 이나undefined 가 아닌 첫번째 피연산자를 반환한다.
  • 기본문법
value1 ?? value2

 

  • 예시
let name = null
let job = '학생'
let person = name ?? job
console.log(person) // '학생'

//
name = null , job = '학생' 이므로 null과 undefined 가 아닌 
첫번째 피연산자인 job의 값인'학생' 을 반환한다.

  • 선택적 체이닝(Optional Chaining)
  • 자바 스크립트 에서는 ' ? .(점 연산자)' 연산자가 선택적 체이닝 연산자로 사용된다.
    이는 객체의 속성에 안전하게 접근할 수 있도록 도와준다.
    객체가 null 이나 undefined 일 경우 오류를 발생시키지 않고 undefined 를 반환한다. 
  • 기본문법
object ?. name
object ?. age

 

  • 예시
//odj
let person = {
name : '홍길동',
age : 25 ,
job : '의적',
add : {
   city : 'Joseon',
   home : 'Hanok'
     }
   }
   
   //체이닝
   
   console.log('이름:',person?.name) // 이름:홍길동
   console.log('직업:',person?.job) // 직업:의적
   console.log('나이:',person?.age) // 나이:25
   console.log('주소:',person?.add?.city)// 주소:Joseon
   console.log('집:',person?.add?.home)// 집:Hanok

  • 다중 '?'
  • 삼항 연산자를 여러개 연결하면 복수의 조건을 처리할 수 있다.
  • 예시
let age = prompt ('나이가...' , 19 )

let msg = (age < 3) ? '아기시네요' : 
          (age <=19) ? '고등학생이시네요' :
          (age > 20) ? '성인이시네요' : '잘못된거같아요'//false 일 경우
          
alart(msg) // '고등학생이시네요'
  • 첫 물음표 에서 조건문 ( age < 3 ) 을 검사
  • 결과가 true 라면 '아기시네요' 를 반환한다.
  • 결과가 false 라면 첫번째 :(콜론) 에 이어지는 조건문( age <= 19 ) 를 검사 
  • 이후 반복

if...else 문과 비슷하지만 '?' 를 if 대용으로 사용하면 코드 가독성이 떨어지므로

'?' 연산자는 조건에 따라 반환값을 달리하려는 목적에 부합하는 곳에만 사용 하도록 하자

'JavaScript' 카테고리의 다른 글

JavaScript 숫자 연산 기호  (0) 2024.07.23
자료형 타입 변환  (0) 2024.07.22
전개 구문(Spread Syntax) ,자주 쓰이는 메소드  (0) 2024.07.18
호이스팅  (0) 2024.07.17
조건문,반복문  (0) 2024.07.16