0. ์ธ์ ์ฐ๋ฉด ์ข์๊น?
์์ธ๋ (๋ ์ด์ ์ข์ง ์์ ์ ๋๊น์ง) ๊ณผ์ฉ๋๊ณค ํ๋ค. ์์ธ๋ '๋ป๋ฐ์ ์ค๋ฅ'๋ผ๋, ๋ง ๊ทธ๋๋ก ์์ธ์ ์ผ๋ก ๋์ํ ๋๋ง ์ฐ์ฌ์ผ ํ๋ค.
ํจ์ ์ํ์ ๋ฌธ์ ๊ฐ ๋ ์ ์๋ ์กฐ๊ฑด์ ํจ์ ํธ์ถ ์ ์ ๊ฒ์ฌํ ์ ์๋ค๋ฉด,
์์ธ๋ฅผ ๋์ง๋ ๋์ ํธ์ถํ๋ ๊ณณ์์ ์กฐ๊ฑด์ ๊ฒ์ฌํ๋๋ก ํด์ผ ํ๋ค.
1. ์ ์ฐจ
(1) ํฉํฐ๋ฆฌ ํจ์๋ฅผ ๋ง๋ ๋ค. ํฉํฐ๋ฆฌ ํจ์์ ๋ณธ๋ฌธ์์๋ ์๋์ ์์ฑ์๋ฅผ ํธ์ถํ๋ค.
(2) ์์ฑ์๋ฅผ ํธ์ถํ๋ ์ฝ๋๋ฅผ ํฉํฐ๋ฆฌ ํจ์ ํธ์ถ๋ก ๋ฐ๊พผ๋ค.
2. ์์ ์ฝ๋
(1) ๋ฆฌํฉํฐ๋ง ์
ํด๋น ์ฝ๋์ ๋ฌธ์ ์ : ์ ๋ฌ๋ฐ์ ์ธ๋ฑ์ค๋ฅผ ํตํด์ ๋ฐฐ์ด์ ํน์ ํ ๊ฐ์ ๋ฐํํ๋ ๊ฒ์ธ๋ฐ,
์ธ๋ฑ์ค๋ฅผ ์ ๋ฌ๋ฐ์ ๋, ์ธ๋ฑ์ค๊ฐ 0๋ณด๋ค ์๊ฑฐ๋ ๋๋ ์ธ๋ฑ์ค๊ฐ ์ฃผ์ด์ง ๋ฐฐ์ด์ ์ฌ์ด์ฆ๋ณด๋ค ๋์ด๊ฐ๋๊ฑด ์คํจ ์ผ์ด์ค๋ก ์ถฉ๋ถํ ์์(expected)๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ ๋ฐฐ์ด ์์, ๊ฐ์ ์ฐพ์ง ๋ชปํ๋ค๊ณ ์๋ฌ๋ฅผ ๋์ง๋ ๊ฒ์ ์์ธ์ฒ๋ฆฌ๋ฅผ ๋จ์ฉํ๋ ๊ฒ์ด๋ค.
const values = [];
function getValueForPeriod(periodNumber) {
const value = values[periodNumber];
if (!value) {
throw new Error('value is undefined');
}
return value;
}
try {
getValueForPeriod(-10);
} catch (error) {
console.log('์๋ฌ ๋ฐ์');
}
(1) ๋ฆฌํฉํฐ๋ง ํ๋ณด1
const values = [];
function getValueForPeriod(periodNumber) {
if (periodNumber < 0 || periodNumber >= values.length) {
return 0;
}
return values[periodNumber];
}
getValueForPeriod(-10);
(2) ๋ฆฌํฉํฐ๋ง ํ๋ณด2
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ๋ฒ์ด๋๋ค๊ณ ํด์, ํฌ๋์ฌ๋์ง ์์ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๊ธฐ ๋๋ฌธ์,
์๋์ ๊ฐ์ด ์กฐ๊ธ ๋ ๊ฐํธํ๊ฒ ๋ง๋ค์ด๋ณผ ์ ์๋ค.
const values = [];
function getValueForPeriod(periodNumber) {
return values[periodNumber] ?? 0;
}
console.log(getValueForPeriod(-10));
'์ฑ ๋ฆฌ๋ทฐ > ๋ฆฌํฉํ ๋ง(์๋ฐ์คํฌ๋ฆฝํธํ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฆฌํฉํฐ๋ง 2ํ] 12.10์ ์ฝ๊ธฐ์ ์์ ์์์ด๋? (0) | 2022.11.28 |
---|---|
[๋ฆฌํฉํฐ๋ง 2ํ] 12.7 ์๋ธํด๋์ค ์ ๊ฑฐํ๊ธฐ (0) | 2022.11.24 |
[๋ฆฌํฉํฐ๋ง 2ํ] 12.6 ํ์ ์ฝ๋๋ฅผ ์๋ธํด๋์ค๋ก ๋ฐ๊พธ๊ธฐ (0) | 2022.11.24 |
[๋ฆฌํฉํฐ๋ง 2ํ] 11.12 ์ค๋ฅ ์ฝ๋๋ฅผ ์์ธ๋ก ๋ฐ๊พธ๊ธฐ (0) | 2022.11.23 |
[๋ฆฌํฉํฐ๋ง 2ํ] 11.8 ์์ฑ์๋ฅผ ํฉํฐ๋ฆฌ ํจ์๋ก ๋ฐ๊พธ๊ธฐ (0) | 2022.11.23 |