상세 컨텐츠

본문 제목

70일차 TIL( cs / 면접 study )

TILs

by API284 2023. 8. 30. 23:53

본문

  1. var, let, const의 차이에 대해 알려주세요.
    • 답변
      • 김우리let 선언은 변수 중복 선언이 불가하지만, 재할당은 가능하다.
      • const가 let과 다른 점이 있다면, 반드시 선언과 초기화를 동시에 진행되어야 한다. const도 let과 마찬가지로 재선언이 불가하며, 더 나아가 재할당도 불가하다. 재할당의 경우, 원시 값은 불가능하지만, 객체는 가능하다. const 키워드는 재할당을 금지할 뿐, '불변'을 의미하지 않는다.
      • var 선언은 전역 범위 또는 함수 범위이며, let 과 const 는 블록 범위이다.

  2. Async/Await와 Promise의 차이
    • 답변
      • 김우리동기식은( 먼저 시작된 하나의 작업이 끝날 때까지 다른 작업을 시작하지 않고 기다렸다가 다 끝나면 새로운 작업을 시작하는 방식이다.비동기식은 동기식 방식과는 다르게 먼저 시작된 작업의 완료 여부와는 상관없이 새로운 작업을 시작하는 방식이다. Asynchronous 작업이 병렬로 배치되어 실행되며 작업의 순서가 확실하지 않아 나중에 시작된 작업이 먼저 끝나는 경우도 발생한다 이와 같은 방식을 비동기식 처리라 부른다.이제 그중에서도 요즘 많이 사용하는 Promise와 async, await의 특징 및 둘의 차이점으로는내용은 실행되었지만 결과를 아직 반환하지 않은 객체라고 이해해도 좋다.
        • Pending (대기)
        • Fulfilled (이행)
        • Rejected (실패)
        비동기 처리가 완료되지 않았다면 Pending, 완료되었다면 Fulfilled, 실패하거나 오류가 발생하였다면 Rejected 상태를 갖는다.가장 최근의 나온 비동기 처리 문법으로 기존의 callback이나 Promise의 단점을 해소하고자 만들어졌다.await를 통해 Promise 반환 값을 받아 올 수 있다.
        • 에러 핸들링
          • Promise 를 활용할 시에는 .catch() 문을 통해 에러 핸들링이 가능하지만, async/await 은 에러 핸들링 할 수 있는 기능이 없어 try-catch() 문을 활용해야 한다
        • 코드 가독성
          • Promise의 .then() 지옥의 가능성
          • 코드가 길어지면 길어질수록, async/await 를 활용한 코드가 가독성이 좋다.
          • async/await 은 비동기 코드가 동기 코드처럼 읽히게 해준다. 코드 흐름을 이해 하기 쉽다
      • callback이나 경우에 단점은 꼬리에 꼬리를 무는 코드가 나올 수도 있다는 부분이다. 흔히들 콜백 지옥, then() 지옥이라고 부른다.
      • async / await
      • Promise 에는 3가지 상태가 있는데
      • Promise는 자바스크립트에서 비동기 처리에 사용되는 객체이다.
      • 하나의 호출 스택만 있기 때문에 하나의 함수를 처리하는데 비동기 처리에는 방법이 여러 가지가 있다. 주로 callback, Promise, async, await를 활용하지만
      • Synchronous 작업이 직렬로 배치되어 실행이 되며 작업 실행의 순서가 확실히 정해져 있는 것을 동기식 처리라 부른다.
      • 좋습니다 우선 동기 비동기 처리에 대한 설명을 간략하게 해보겠습니다.

 

관련글 더보기