Programing/javascript

함정에 빠지기 쉬운 자바스크립트 문법9

2025. 5. 5. 09:44
반응형

이번 9편에서는 자바스크립트에서 비동기 동작이나 동등 비교 등에서 발생하는 혼란스러운 상황들을 구체적으로 정리합니다.

✅ 1. async function은 항상 Promise를 반환한다

📌 문제 상황

async function test() {
  return 1;
}

console.log(test()); // Promise { <fulfilled>: 1 }

📌 설명

async 함수는 return 값과 무관하게 항상 Promise를 반환합니다. 동기처럼 보여도 비동기로 동작합니다.


✅ 2. Promise.prototype.finally는 값에 영향을 주지 않는다

Promise.resolve(42)
  .finally(() => console.log("done"))
  .then(value => console.log(value));
// done
// 42

📌 설명

.finally()는 전달된 값을 변경하지 않고, 다음 then으로 그대로 전달합니다.


✅ 3. undefined == null은 true지만 undefined === null은 false

undefined == null; // true
undefined === null; // false

📌 설명

==은 타입 변환을 허용한 느슨한 비교이기 때문에 null과 undefined는 같다고 평가됩니다. 하지만 ===는 엄격한 비교로 타입이 다르면 false입니다.


✅ 4. 객체 리터럴 안에서 중복된 키는 마지막 키로 덮어씌워진다

const obj = {
  a: 1,
  a: 2
};
console.log(obj.a); // 2

📌 설명

동일 키가 여러 번 선언되면 가장 마지막 선언이 유효합니다. 이는 코드 가독성을 떨어뜨리고 실수를 유발할 수 있습니다.


✅ 5. 함수 내부에서 선언한 변수는 호이스팅된다

function test() {
  console.log(a); // undefined
  var a = 5;
}

📌 설명

var로 선언된 변수는 함수 스코프 전체로 호이스팅되지만, 값은 할당되지 않기 때문에 초기 접근 시 undefined가 됩니다.


✅ 결론

비동기 처리와 비교 연산은 자바스크립트 개발에서 실수가 잦은 영역입니다. 이를 정확히 이해하면 예기치 않은 버그를 줄이고 코드 안정성을 확보할 수 있습니다.

반응형

'Programing > javascript' 카테고리의 다른 글

함수 선언식과 함수 표현식의 차이  (2) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법12  (0) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법11  (1) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법10  (0) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법8  (1) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법7  (1) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법6  (0) 2025.05.05
함정에 빠지기 쉬운 자바스크립트 문법5  (1) 2025.05.05
'Programing/javascript' 카테고리의 다른 글
  • 함정에 빠지기 쉬운 자바스크립트 문법11
  • 함정에 빠지기 쉬운 자바스크립트 문법10
  • 함정에 빠지기 쉬운 자바스크립트 문법8
  • 함정에 빠지기 쉬운 자바스크립트 문법7
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    iT's MY LiFE
    IT블로그
    자바
    사고 싶은 책
    It
    자바스크립트
    SQL
    js패턴
    읽고 싶은 책
    기초
    Java
    디자인패턴
    블로그
    IT·컴퓨터
    php
    jsp
    JavaScript
    위시리스트
    자바스크립트유틸
    IT 관련
Dongkkase
함정에 빠지기 쉬운 자바스크립트 문법9
상단으로

티스토리툴바