sodol-dotcom

객체 선언과 제어문의 차이(언제 ';'가 필요한가?) 본문

Fundamentals/JavaScript

객체 선언과 제어문의 차이(언제 ';'가 필요한가?)

sod0l 2024. 9. 13. 17:54

1. 객체 / 변수 선언과 제어문의 차이

1-1. 객체 / 변수 선언의 경우:

// 객체 선언
const animal = {
  type: "고양이",
  name: "나비",
  color: "black"
};

// 변수 선언
let x = 10;

여기서 중괄호`{}`객체를 정의하는데 사용되고 있다. 이건 `animal`이라는 변수에 하나의 객체를 할당하는 작업이다.

변수 선언 구문이기 때문에 구문 전체가 끝났다는 걸 명확하게 하기 위해 `;`를 붙여줘야한다.

  • 객체는 데이터의 묶음이고, `{}` 안에는 속성(property)들이 들어 있다.
  • 변수객체를 선언할 때는 마지막에 세미콜론(;)을 붙여서 구문이 끝났다는 걸 명확히 해주는 게 좋다.
  • 왜냐하면, JavaScript는 변수 선언이나 할당이 끝난 후 구문이 끝났다는 걸 명시적으로 알려주는 걸 좋아한다고 함..
    (JavaScript 문법 자체가 그렇게 생김)

 

 

2. 구문이 끝났음을 알리는 방식의 차이

2-1. 객체 선언에서는 `;`로 끝을 알려줘야 한다.

  • 객체 자체는 `{}`로 정의되지만, 변수 선언이 구문으로 끝났다는 걸 `;`로 명확하게 표시해야 한다.
  • JavaScript는 변수 선언이나 표현식을 끝낼 때 보통 `;`를 붙여서 끝났다고 알려준다. 이게 명확한 스타일이다.
const animal = { ... };  // 끝을 ;로 표시

 

2-2. 제어문에서는 `{}`가 구문을 끝내는 역할을 하기 때문에 `;`가 필요 없다.

  • `for`, `if`, `while` 같은 제어문은 실행할 코드를 묶는 역할로 `{}`를 사용한다 .이 경우 중괄호로 감싸진 부분이 끝나면, 제어문이 끝났다는 걸 이미 알고 있기 때문에 `;`는 필요하지 않다.
for (let i = 0; i < 5; i++) { ... }  // 끝을 {}로 표시, ; 필요 없음

 

 

3. 정리

  • 변수선언(객체 포함): 선언이 끝났다는 걸 명시적으로 표시하기 위해 `;`를 써서 구문을 끝내는 것이 좋다. 이는 하나의 명령문이기 때문이다.
  • 변수 선언: `let x = 10;`
  • 객체 선언: `const animal = { type: "고양이", name: "나비" };`
const animal = { ... };  // 구문이 끝났으니 ;로 마무리
  • 제어문(for, if, while 등): 중괄호 `{}`로 코드 블록이 끝났음을 표시하기 때문에, 블록 안에 코드가 실행된 후 추가적으로 `;`를 쓸 필요가 없다.