[자바스크립트 완벽가이드] - 문

Lee Jeong Min·2022년 5월 31일
1

자바스크립트

목록 보기
6/17
post-thumbnail

자바스크립트 완벽가이드 5장에 해당하는 부분이고, 읽으면서 자바스크립트에 대해 새롭게 알게된 부분만 정리한 내용입니다.

4장에 나온 표현식은 '평가'를 통해 값으로 바뀌지만, 문은 '실행'을 통해 어떤 동작을 수행한다.

조건문

if

조건문의 다음 코드를 보자.

i = j = 1;
k = 2;
if (i === j)
  if (j === k) console.log('i equals k');
else console.log("i doesn't equal j");

조건문을 사용할 때, 명확하게 의도를 전달하고 싶다면 아래와 같이 중괄호를 써주자.
→ 가독성 측면에서 중괄호를 쓰는게 맞는거 같다.

i = j = 1;
k = 2;
if (i === j) {
  if (j === k) {
    console.log('i equals k');
  } else {
    console.log("i doesn't equal j");
  }
}

switch

일반적으로 switch문 안에서는 break 키워드를 사용하여 문을 끝내지만 함수 안의 switch 문이라면 break 문 대신 return 문을 써도 된다.

반복문

for/of

이터러블 객체에서 동작하며, 반복문을 수행할 때 '동적으로' 순회하기 때문에 배열 자체에 변화가 생긴다면 예상치 못한 결과를 초래할 수 있다.

즉 대상 배열의 값이 계속해서 추가되는 경우, 무한루프가 발생할 수 있음

for/await를 사용한 비동기 순회를 다음과 같이 할 수 있다.

const printStream = async stream => {
  for await (const chunk of stream) {
    console.log(chunk);
  }
};

거의 사용해본적 없는 문법인데.. 처음봤다.

점프문

라벨 붙은 문

어떤 문이든 그 앞에 식별자와 콜론을 붙여서 라벨을 만들 수 있다.

identifier: statemnet

코드 예시

mainloop: while(token !== null) {
    continue mainloop; // 이 루프의 다음 반복으로 건너뜀
    break mainloop; // 해당 라벨이 붙은 문을 종료
}

라벨의 네임 스페이스는 변수나 함수의 네임스페이스와 달라 같은 식별자를 사용할 수 있다.

기타문

with

with문은 지정된 객체의 프로퍼티가 해당 블록의 스코프 안에 있는 변수인 것처럼 코드 블록을 진행한다.

with (document.forms[0]) {
  // 폼 요소에 직접 접근
  name.value = '';
  address.value = '';
  email.value = '';
}

그러나 with문은 코드를 최적화하기 어렵고 상당히 느리게 동작하기에 사용하지 않는다.
따라서 with 문을 없애기 위해 다음과 같이 고쳐쓸 수 있다.

const f = document.forms[0];
f.name.value = '';
f.address.value = '';
f.email.value = '';
profile
It is possible for ordinary people to choose to be extraordinary.

0개의 댓글