728x90
8.1 블록문
- 0개 이상의 문을 중괄호로 묶은 것으로 코드 블록 또는 블록이라 부르기도 함.
- js는 블록문을 하나의 실행 단위로 취급함.
- 단독 사용이 가능하나 제어문이나 함수를 정의할때 사용하는 것이 일반적
// 블록문
{
var foo = 10;
}
// 제어문
var x = 1;
if (x < 10) {
x++;
}
// 함수 선언문
function sum(a, b) {
return a + b;
}
8.2 조건문
8.2.1 if else 문
if (조건식) {
// 조건식이 참이면 실행
} else if (조건식2) {
// 조건식2가 참이면 실행
} else {
//조건식이 거짓이면 실행
}
8.2.2 switch 문
switch (표현식) {
case 표현식1:
switch 문의 표현식과 표현식1이 일치하면 실행될 문;
break;
case 표현식2:
switch 문의 표현식과 표현식2가 일치하면 실행될 문;
break;
default:
switch 문의 표현식과 일치하는 case 문이 없을 때 실행될 문;
}
- break 문을 빼먹지 말자.
- 혹은 break문을 의도적으로 생략하여 여러 값에 맞는 switch case문을 작성할 수도 있다.
var grade;
switch (score) {
case 10 :
grade = 'A';
break;
case 9 :
case 8 :
grade = 'B';
break;
default :
grade = 'C';
}
8.3 반복문
- 반복문은 조건식의 평가 결과가 참인 경우 코드 블록을 실행함.
- for, while, do while문 등이 있음.
- 배열에 사용되는 forEach 메서드, for in, for of 문 등 대체 가능한 기능들이 있음.
- 사실 90%이상 forEach, for in, for of만 사용하는 중
8.3.1 for 문
for (var i = 0; i < string.length; i++) {
// 'l'이면 카운트를 증가시킨다.
if (string[i] === search) count++;
}
8.3.2 while문
- 조건이 true인동안 코드블럭을 실행
var count = 0;
// count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다.
while (count < 3) {
console.log(count); // 0 1 2
count++;
}
8.3.3 do while 문
- 코드블록을 먼저 실행하고 조건식을 평가함
var count = 0;
// count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다.
do {
console.log(count); // 0 1 2
count++;
} while (count < 3);
8.4 break 문
- 코드블록을 탈출할때 쓰임( 레이블 문, 반복문, switch문 등)
- 그외의 곳에서 break 문 사용 시 SyntaxError 발생함.
// foo라는 식별자가 붙은 레이블 블록문
foo: {
console.log(1);
break foo; // foo 레이블 블록문을 탈출한다.
console.log(2);
}
console.log('Done!');
- 레이블문은 for문 외부로 탈출할때 유용하나 그 외의 경우 권장하지 않음. (가독성 및 오류 발생 가능성)
8.5 continue 문
- 코드 블록 실행을 현시점에서 중단하고 실행 흐름을 이동 시킴
var string = 'Hello World.';
var search = 'l';
var count = 0;
// 문자열은 유사 배열이므로 for 문으로 순회할 수 있다.
for (var i = 0; i < string.length; i++) {
// 'l'이 아니면 현 지점에서 실행을 중단하고 반복문의 증감식으로 이동한다.
if (string[i] !== search) continue;
count++; // continue 문이 실행되면 이 문은 실행되지 않는다.
}
console.log(count); // 3
// 참고로 String.prototype.match 메서드를 사용해도 같은 동작을 한다.
const regexp = new RegExp(search, 'g');
console.log(string.match(regexp).length); // 3
위의 for문은 아래와 동일
for (var i = 0; i < string.length; i++) {
// 'l'이면 카운트를 증가시킨다.
if (string[i] === search) count++;
}
- 별로 권하지 않는 방법이라고 한다. 쓰지말자.
'공부공부 > JS 딥다이브' 카테고리의 다른 글
[js 딥다이브] 10장 객체 리터럴 (0) | 2023.10.16 |
---|---|
[js 딥다이브] 09장 타입변환과 단축평가 (0) | 2023.10.16 |
[js 딥다이브] 07장 연산자 (0) | 2023.10.16 |
[js 딥다이브] 06장 데이터 타입 (0) | 2023.10.16 |
[js 딥다이브] 05장 표현식과 문 (0) | 2023.10.16 |