제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행 할 때 사용한다.
if...else
문과 switch
문이 있다.// switch문 사용법
switch (표현식) {
case 표현식1:
switch: 문의 표현식과 표현식 1이 일치하면 실행;
break //각 switch를 실행하고 나면 break로 빠져 나오기
case 표현식2:
switch: 문의 표현식과 표현식 2가 일치하면 실행;
break
default:
switch 문의 표현식과 일치하는case가 없는 경우 실행;
}
if...else
문으로 해결 가능하면 if...else
사용, 조건이 많아 switch
문이 가독성이 더 좋을 경우에 switch
문을 사용하자.
for
문은 반복 횟수가 명확할 때 사용, while
문은 반복 횟수가 불명확할 때 주로 사용한다
꾸준한 연습으로 자연스럽게 조건문과 반복문을 사용할 수 있도록 익히자.
이번 장에서 다룬 조건문과 반복문은 자세한 서술을 피했다.
일부는 아는 내용이기도 하고 이를 정리하는 것도 중요하겠지만, 필요한 내용은 후에 책을 다시 참조하거나 구글링을 통해 찾아보기로 한다.
코딩 테스트를 연습하거나, 필요한 로직을 설계해보며 제어문을 숙달하는 것이 중요❕
명시적 타입 변환(explicit coercion) or 타입 캐스팅(type casting) : 개발자가 의도적으로 값의 타입을 변환하는 것 ↔ 암묵적 타입 변환(implicit coercion) or 타입 강제 변환(type coercion)
암시적 타입 변환은 앞선 7장 연산자에서도 간단하게 살펴보았다.
(10).toString()
10+ ''
Truty 값(참으로 평가되는 값)과 Falsy값(거짓으로 평가되는 값)
Falsy값 예시(부정적인 느낌적인 느낌..?@)
논리합(||)
과 논리곱(&&)
연산자를 사용한 표현식.
이를 사용해서 에러를 방지할 수 있다.
'아직 단축 평가를 사용하는데도 익숙하지 않은데?, 보다 완성도 있게 코드를 작성하면 굳이 필요한가??'
에러를 방지하기 위한 차원에서 단축평가를 사용한다 vs 에러를 방지하기 위한 클린코드를 작성한다(물론 내가 짠 코드는 항상 완벽할 수 없다) 라는 생각이 들 때, 저자는 이런 나의 생각을 읽힌듯 다음 내용이 나와있다.
?.
는 좌항의 피연산자가 null
또는 undefined
인 경우 undefined
를 반환하고, 그렇지 않으면 우항의 프로퍼티를 참조한다.var elem = null;
var value = elem?.value;
console.log(value) // null
??
좌항의 피연산자가 null
또는 undefined
인 경우 피연산자를 반환하고, 그렇지 않으면 좌항의 피연산자를 반환한다. var foo = null ?? 'default string'
console.log(foo); // 'default string'
역시 개발자의 세상은 점점 편리해진다.