CH03. 연산자와 구문

zw0n2·2024년 1월 24일
0

JavaScript 스터디

목록 보기
4/12
post-thumbnail

1. 할당연산자

let a = 3      //const는 재할당이 불가능하여 let 사용
a+=2
console.log(a)
  • 실행결과
    5

2. 증감연산자

let a = 3
console.log(a++) //연산자가 뒤에 있을때
console.log(a)
  • 실행결과
    3
    4
let a = 3
console.log(++a)  //연산자가 앞에 있을때
console.log(a)
  • 실행결과
    4
    4

3. 부정연산자

console.log(!0)  //true 출력

4. 비교연산자

const a = 1
const b = 3 
  • 일치
console.log(a === b)  //false 출력
  • 불일치
console.log(a !== b)  //true 출력

5. Nullish 병합 연산자

: null이나 undefined는 넘어가고 그외 모든 데이터는 만나자마자 반환
(단, null이나 undefined이 마지막 데이터라면 반환함)

const n = 0
const num = n ?? 7
console.log(num)  //0출력

6. 삼항 연산자

  • 형식: 조건 ? 참 : 거짓
function getAlert(message) {
  return message ? message :'메시지 없음'
}

console.log(getAlert('안녕'))    //'안녕' 출력
console.log(getAlert(' '))      //'메시지 없음' 출력

7. 전개연산자

  • 배열 병합(concat 메서드처럼 동작)
const a = [1, 2, 3]
const b = [4, 5, 6]

const c = a.concat(b)
console.log(c)        //[1,2,3,4,5,6] 출력

const d = [...a, ...b]
console.log(d)        //[1,2,3,4,5,6] 출력
  • 객체 병합(assign 메서드처럼 동작)
const a = [x: 1, y: 2]
const b = [y: 3, z: 4]

const c = Object.assign({}, a, b)
console.log(c)        //{x: 1, y: 3, z: 4} 출력

const d = {...a, ...b}
console.log(d)        //{x: 1, y: 3, z: 4} 출력
  • 함수 실행 시 배열 데이터 쉽게 전달
function fn(x, y, z) {
  console.log(x, y, z)
}

fn(1, 2, 3)    //1 2 3 출력

const a = [1, 2, 3]  
fn(...a)       //1 2 3 출력

논리/산술연산자는 생략,,


8. 구조 분해 할당

: 배열/객체 데이터 구조를 분해하여 각 변수에 개별적으로 데이터 할당

  • 배열 데이터에서 사용
const arr = [1, 2, 3]
const [a, b, c] =arr

console.log[a, b, c]   //1 2 3 출력
  • 이미 변수가 선언되어 있을 경우
let a = 0          //재할당 가능한 let 사용
let b = 0
let c = 0
const arr = [1, 2, 3]

;[a, b, c] = arr    //앞 명령이 끝나지 않아서 세미콜론으로 시작
console.log(a, b, c)
  • 필요하지 않은 변수 제거
let b = 0
let c = 0
const arr = [1, 2, 3]

;[, b, c] = arr    //쉼표는 그대로 두어 b,c는 순서에 맞게 할당 되도록 함
console.log(b, c)  //2 3 출력
  • 객체 데이터에서 사용
const obj {
  a: 1,
  b: 2,
  c: 3
}

const {a, b} = obj  //a와 b만 꺼내씀, 배열과 달리 순서를 맞추지 않아도 됨

console.log(a, b)  //1 2 출력
  • 객체 데이터에 특정한 속성값이 없을 경우 기본값 지정가능
const obj {
  a: 1,
  b: 2,
  c: 3,
  y: 4 
}

const {x = 4, a: tbz, y: sw = 10} = obj   //값, 변수 이름 바꾸기 가능

console.log(x, tbz, sw)  //4 1 10 출력
  • 전개 연산자 사용하기
const arr = [1, 2, 3]      //배열에서
const [a, ...rest] = arr  //rest는 변수명으로 다른 이름 가능

console.log(a, rest)   //1 [2, 3] 출력
const obj {            //객체에서
  a: 1,
  b: 2,
  c: 3,
  y: 4 
}

const {c, ...rest} = obj
console.log(c, rest)      //3 {a: 1, b: 2, y: 4} 출력

9. 선택적 체이닝

: 에러발생을 방지하는 예외처리 방법 중 하나로 꼭 필요할때만 사용하기

const user = null  //혹은 undefined인 경우

console.log(user?.name)     //undefined 출력

-> 물음표의 앞쪽에 있는 데이터가 점표기법을 사용할 수 없는 데이터인 경우에도 에러 없이 undefined 출력하도록함

  • 활용 예시
const userA = {
  name: 'ksw',
  age: 25,
  address: {
    country: 'Korea'
    city: 'Seoul'
  }
}

const userB = {
  name: 'jcm'
  age: 26
}

function getCity(user) {
  return user.address?.city   //선택적체이닝 사용
}
  
console.log(getCity(userA))   //Seoul 출력
console.log(getCity(userB))   //undefined 출력
  
  • 또는 연산자 사용도 가능
function getCity(user) {
  return user.address?.city || '주소없음'   //또는 연산자 사용
}
  
console.log(getCity(userA))   //Seoul 출력
console.log(getCity(userB))   //주소없음 출력

조건문 생략,,

10. 반복문

  • For문
    • break 키워드 사용예시
         for (let i = 9; i> -1; i -= 1) {
           if (i<4) {
             break
           }
           console.log(i)    //9부터 4까지 차례로 출력
         }
    • countinue 키워드 사용예시
         for (let i = 9; i> -1; i -= 1) {
           if (i%2 === 0) {
             countinue
           }
           console.log(i)    //9부터 1사이 홀수만 차례로 출력
  • For of
    :for문 사용하는데 배열 데이터의 아이템에 접근해야 할때
const tbz = ['ksw', 'jcm', 'kyh']
for (const member of tbz) {
  console.log(member)             //tbz 배열안 아이템 차례로 출력
}                 
  • For in
    :for문 사용하는데 객체 데이터의 속성에 접근해야 할때
const user = {
  name: 'ksw',
  age: 25,
  isValid: true
}

for (const key in user) {
  console.log(key)       //name age inValid 출력
  console.log(user[key]) //키 속성 모두 출력
}

while문 생략,,

profile
렛츠고 스터디 렛츠고 스터디 예 렛츠고 오오오 스터디 렛츠고 스터디 예

0개의 댓글

관련 채용 정보