2024-06-21
This commit is contained in:
134
Writerside/topics/Flow-Control.md
Normal file
134
Writerside/topics/Flow-Control.md
Normal file
@@ -0,0 +1,134 @@
|
||||
# 흐름 제어
|
||||
|
||||
## 조건문
|
||||
|
||||
자바스크립트의 조건문은 자바나 C의 조건문과 같습니다.
|
||||
|
||||
```javascript
|
||||
if (조건식) { ... }
|
||||
```
|
||||
|
||||
```javascript
|
||||
if (조건식) { ... } else { ... }
|
||||
```
|
||||
|
||||
```javascript
|
||||
if (조건식) { ... } else if (조건식) { ... } else { ... }
|
||||
```
|
||||
|
||||
자바스크립트에서는 다음의 값은 거짓으로 평가되며 그 외에는 참으로 평가됩니다.
|
||||
|
||||
- false
|
||||
|
||||
- undefined
|
||||
|
||||
- null
|
||||
|
||||
- 0
|
||||
|
||||
- NaN
|
||||
|
||||
- ""
|
||||
|
||||
빈 문자열.
|
||||
|
||||
|
||||
Boolean 객체의 값이 false인 경우라도, 조건식에서는 true로 평가됩니다. 주의하세요.
|
||||
|
||||
```javascript
|
||||
let a = new Boolean(false);
|
||||
|
||||
if (a) {
|
||||
console.log("yes"); // 여기가 실행됩니다.
|
||||
} else {
|
||||
console.log("no");
|
||||
}
|
||||
```
|
||||
|
||||
```javascript
|
||||
switch (표현식) { case: ... break; default: ... break; }
|
||||
```
|
||||
|
||||
## 반복문
|
||||
|
||||
기본적인 반복문은 C 스타일의 반복문과 같습니다.
|
||||
|
||||
```javascript
|
||||
for (초기식;조건식;증감식) { ... }
|
||||
```
|
||||
|
||||
```javascript
|
||||
while (조건식) { ... }
|
||||
```
|
||||
|
||||
```javascript
|
||||
do { ... } while (조건식);
|
||||
```
|
||||
|
||||
```javascript
|
||||
break;
|
||||
```
|
||||
|
||||
```javascript
|
||||
continue;
|
||||
```
|
||||
|
||||
### for … in
|
||||
|
||||
객체의 속성을 통해서 반복합니다.
|
||||
|
||||
```javascript
|
||||
let charlie = {
|
||||
age: 14,
|
||||
name: "Charlie"
|
||||
};
|
||||
for (let prop in charlie) {
|
||||
console.log(prop + " = " + charlie[prop]);
|
||||
}
|
||||
```
|
||||
|
||||
### for … of
|
||||
|
||||
배열 등 반복 가능한 객체를 반복합니다.
|
||||
|
||||
```javascript
|
||||
let array = [1, 2, 3, 4, 5];
|
||||
for (let item of array) {
|
||||
console.log(item);
|
||||
}
|
||||
```
|
||||
|
||||
## 예외 처리
|
||||
|
||||
예외 처리 구문은 자바의 예외 처리 구문과 비슷합니다.
|
||||
|
||||
```javascript
|
||||
try { ... } catch(e) { ... }
|
||||
try { ... } catch(e) { ... } finally { ... }
|
||||
```
|
||||
|
||||
try 블록을 실행하는 도중 예외가 발생하면, catch 블록으로 넘어갑니다.
|
||||
|
||||
catch문에서는 throw 구문에서 던진 객체를 받을 수 있습니다.
|
||||
|
||||
try 블록이 성공하든 실패하든 finally 블록은 무조건 실행됩니다. 만일, finally 블록에서 return으로 값을 반환하는 경우에, try 블록이나 catch 블록의 return 값은 무시됩니다.
|
||||
|
||||
```javascript
|
||||
throw 표현식;
|
||||
```
|
||||
|
||||
예외를 발생시킬 때 사용합니다. 객체, 숫자, 문자열 등 무엇이든 던질 수 있습니다.
|
||||
|
||||
```javascript
|
||||
function fun1() {
|
||||
throw { code: 1, message: "Error" };
|
||||
}
|
||||
|
||||
try {
|
||||
fun1();
|
||||
} catch (e) {
|
||||
console.warn(e.message);
|
||||
} finally {
|
||||
console.log("The End");
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user