์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- float
- CSS
- ํ๋ก ํธ์๋
- ์๊ณ ๋ฆฌ์ฆ
- fetch API
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- useEffect
- Props
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- REACT
- Flex
- ์ฝ๋ฉํ ์คํธ
- ๋ฐ๋ธ์ฝ์ค
- ๋ธ๋ก๊ทธ
- useRef
- Gatsby
- history api
- position
- Today
- Total
Daehyunii's Dev-blog
08์ฅ ์ ์ด๋ฌธ ๋ณธ๋ฌธ
08์ฅ ์ ์ด๋ฌธ
Daehyunii 2022. 6. 27. 13:1008์ฅ ์ ์ด๋ฌธ
์ ์ด๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก์ ์คํ ํ๊ฑฐ๋ ๋ฐ๋ณต ์คํ ํ ๋ ์ฌ์ฉํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋์ ํ๋ฆ์ ์์์ ์๋ ๋ฐฉํฅ์ผ๋ก ์คํ๋์ง๋ง, ์ ์ด๋ฌธ์ ์ฌ์ฉํ๋ฉด ์ฝ๋์ ์คํ ํ๋ฆ์ ์ธ์์ ์ผ๋ก ์ ์ดํ ์ ์๋ค. (์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ)
8.1 ๋ธ๋ก๋ฌธ === ์ฝ๋๋ธ๋ก === ๋ธ๋ก
๋ธ๋ก๋ฌธ์ 0๊ฐ ์ด์์ ๋ฌธ์ ์ค๊ดํธ('{ }')๋ก ๋ฌถ์ ๊ฒ์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ธ๋ก๋ฌธ์ ํ๋์ ์คํ ๋จ์๋ก ์ทจ๊ธํ๋ค. ๋ธ๋ก๋ฌธ์ ๋จ๋ ์ผ๋ก ์ฌ์ฉํ ์๋ ์์ผ๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์ด๋ฌธ(์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ)์ด๋ ํจ์๋ฅผ ์ ์ํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค. ์ด๋ฌํ ๋ธ๋ก๋ฌธ์ ์์ฒด ์ข ๊ฒฐ์ฑ์ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ธ๋ก๋ฌธ์ ๋์๋ ์ธ๋ฏธ์ฝ๋ก ( ; )์ ๋ถ์ด์ง ์๋๋ค.
8.2 ์กฐ๊ฑด๋ฌธ
์กฐ๊ฑด๋ฌธ์ ์ฃผ์ด์ง ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก์ ์คํ์ ๊ฒฐ์ ํ๋ค.(์กฐ๊ฑด์์ ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ํ๊ฐ๋ ์ ์๋ ํํ์์ด๋ค.)
ํ์ง๋ง, ์กฐ๊ฑด๋ฌธ ์์ฒด๋ ํํ์์ด ์๋๋ค.
8.2.1 if...else๋ฌธ
if...else๋ฌธ์ ์ฃผ์ด์ง ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์คํํ ์ฝ๋ ๋ธ๋ก์ ๊ฒฐ์ ํ๋ค. ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ true์ผ ๊ฒฝ์ฐ if๋ฌธ์ ์ฝ๋ ๋ธ๋ก์ด ์คํ๋๊ณ , false์ผ ๊ฒฝ์ฐ else๋ฌธ์ ์ฝ๋ ๋ธ๋ก์ด ์คํ๋๋ค.
if(์กฐ๊ฑด์){
//if๋ฌธ์ ์กฐ๊ฑด์์ด true์ผ ๋ ์คํ ๋ ๋ธ๋ก
} else {
//if๋ฌธ์ ์กฐ๊ฑด์์ด false์ผ ๋ ์คํ ๋ ๋ธ๋ก
}
if ๋ฌธ์ ์กฐ๊ฑด์์ ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ํ๊ฐ๋์ด์ผ ํ๋ค. ๋ง์ฝ if ๋ฌธ์ ์กฐ๊ฑด์์ด ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ํ๊ฐ๋์ง ์๋ ๊ฐ์ด๋ผ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ํด์ ์๋ฌต์ ํ์ ๋ณํ๋๋ค. ์กฐ๊ฑด์์ ์ถ๊ฐํ์ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ ์คํ๋ ์ฝ๋ ๋ธ๋ก์ ๋๋ฆฌ๊ณ ์ถ๋ค๋ฉด else if ๋ฌธ์ ์ฌ์ฉํ๋ค. else if ๋ฌธ๊ณผ else ๋ฌธ์ ์ฌ์ฉ ํ ์๋ ์๊ณ ์ฌ์ฉํ์ง ์์ ์๋ ์๋ค. ๋จ, if ๋ฌธ๊ณผ else ๋ฌธ์ 1๋ฒ์ฉ๋ง ์ฌ์ฉํ ์ ์๋ค.
var num = 5;
var kind;
if ( num > 0){
kind = '์์';
}else if ( num === 0){
kind = '์';
}else {
kind = '์์';
}
console.log(kind); // ์์
โTip
-๋ง์ฝ ์ฝ๋ ๋ธ๋ก ์์ ๋ฌธ์ด ํ๋๋ฟ์ด๋ผ๋ฉด ์ค๊ดํผ๋ฅผ ์๋ตํ ์ ์๋ค.
var num = 5;
var kind;
if (num > 0) kind = '์์';
else if (num === 0)kind = '์';
else kind = '์์';
console.log(kind); // ์์
๋๋ถ๋ถ์ if...else ๋ฌธ์ ์์ ๋ฐฐ์ด ์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์๋ก ๋ฐ๊ฟ ์ธ ์ ์๋ค.
var num = 5;
var kind = num === 0 ? '์': (num > 0 ? '์์' : '์์');
console.log(kind); // ์์
var kind = num ? (num > 0 ? '์์' : '์์') : '์';
console.log(kind); // ์์
//์ซ์ ๊ฐ 0 ์ ์๋ฌต์ ํ์
๋ณํ์ด ์ผ์ด๋๋ฉด false์ด๊ธฐ ๋๋ฌธ์ด ๊ทธ ๋ถ๋ถ์ ์ด์ฉํด์ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์๋ค.
์์์ ์ธ๊ธํ๋ฏ์ด, ์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์๋ ํํ์์ด๊ธฐ ๋๋ฌธ์ ๋ณ์์ ๋ฐ๋ก ํ ๋นํ ์ ์๋ค. ํ์ง๋ง if...else๋ฌธ์ ํํ์์ด ์๋๊ธฐ ๋๋ฌธ์ ๋ณ์์ ๋ฐ๋ก ํ ๋นํ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์กฐ๊ฑด์ ๋ฐ๋ผ ๋จ์ํ ๊ฐ์ ๊ฒฐ์ ํ์ฌ ๋ณ์์ ํ ๋นํ๋ ๊ฒฝ์ฐ if...else ๋ฌธ ๋ณด๋ค๋ ์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ํธ์ด ๊ฐ๋ ์ฑ์ด ์ข๋ค.
8.2.2 switch๋ฌธ
switch ๋ฌธ์ ์ฃผ์ด์ง ํํ์์ ํ๊ฐํ์ฌ ๊ทธ ๊ฐ๊ณผ ์ผ์นํ๋ ํํ์์ ๊ฐ๋ case ๋ฌธ์ผ๋ก ์คํ ํ๋ฆ์ ์ฎ๊ธด๋ค. if...else ๋ฌธ์ ์กฐ๊ฑด์์ ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ํ๊ฐ๋์ด์ผ ํ์ง๋ง, swith ๋ฌธ์ ํํ์์ ๋ถ๋ฆฌ์ธ ๊ฐ๋ณด๋ค๋ ๋ฌธ์์ด์ด๋ ์ซ์ ๊ฐ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ฝ๋ ์์ฑ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์ฝ๋๋ฅผ ์ง์ ๋ณด๊ณ ์ดํดํ๋๊ฒ ๋น ๋ฅผ ๊ฒ ๊ฐ๋ค.
switch(ํํ์){
case ํํ์1 :
switch๋ฌธ์ ํํ์๊ณผ ํํ์1์ด ์ผ์นํ๋ฉด ์คํ๋ ๋ฌธ;
break;
case ํํ์2 :
switch๋ฌธ์ ํํ์๊ณผ ํํ์2๊ฐ ์ผ์นํ๋ฉด ์คํ๋ ๋ฌธ;
break;
case ํํ์1 :
switch๋ฌธ์ ํํ์๊ณผ ํํ์3์ด ์ผ์นํ๋ฉด ์คํ๋ ๋ฌธ;
break;
default :
switch๋ฌธ์ ํํ์๊ณผ ์ผ์นํ๋ case์ ํํ์์ด ์๋ ๊ฒฝ์ฐ ์คํ๋ ๋ฌธ;
}
// ์ซ์ ๊ฐ์ผ๋ก ํํ๋ ์์ ๋ฌธ์์ด ์๋ก ๋ณํํ๋ค.
var month = 6;
var stringMonth;
switch(month){
case 1 :
stringMonth ='์ผ์';
break;
case 2 :
stringMonth ='์ด์';
break;
case 3 :
stringMonth ='์ผ์';
break;
case 4 :
stringMonth ='์ฌ์';
break;
case 5 :
stringMonth ='์ค์';
break;
case 6 :
stringMonth ='์ ์';
break;
default :
stringMonth ='์ ์ ์ดํ์ ๋ฌ ์
๋๋ค.';
}
console.log(stringMonth); // ์ ์
โป์ฃผ์์ฌํญ
-switch ๋ฌธ์ ์ฌ์ฉํ ๊ฒฝ์ฐ break ํค์๋๋ฅผ ์ฌ์ฉํ break๋ฌธ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด, ํด์ค๋ฃจ๊ฐ ์ผ์ด๋๊ฒ ๋๋ค. ํด์ค๋ฃจ๋ ํํ์์ ํ๊ฐํ์ฌ ๊ทธ ๊ฐ๊ณผ ์ผ์นํ๋ ํํ์์ ๊ฐ๋ case ๋ฌธ์ผ๋ก ์คํ ํ๋ฆ์ ์ฎ๊ฒจ ์คํ์ํจ๋ค, ์ฝ๋ ๋ธ๋ก์ ํ์ถํ์ง ๋ชปํ๊ณ , ํด๋น case ๋ฌธ ๋ค์ ์๋ ๋ค์ ์ฝ๋๋ค์ ๊ทธ๋๋ก ์ฝ์ด ๋ค์ด๊ฒ ๋๋ค. (์๋์ ์ผ๋ก ํด์ค๋ฃจ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์๋ค.)
8.3 ๋ฐ๋ณต๋ฌธ
๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ true์ธ ๊ฒฝ์ฐ ์ฝ๋ ๋ธ๋ก์ ์คํํ๊ณ , ๊ทธ ํ ์กฐ๊ฑด์์ ๋ค์ ํ๊ฐํ์ฌ ์ฌ์ ํ ์ฐธ์ธ ๊ฒฝ์ฐ ์ฝ๋ ๋ธ๋ก์ ๋ค์ ์คํํ๋ค. ์ด๋ฌํ ๋ฐ๋ณต์ ์กฐ๊ฑด์์ด false์ผ ๋๊น์ง ๋ฐ๋ณต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ธ ๊ฐ์ง ๋ฐ๋ณต๋ฌธ์ธ for ๋ฌธ, while ๋ฌธ, do...while ๋ฌธ์ ์ ๊ณตํ๋ค.
8.3.1 for๋ฌธ (๋งค์ฐ ์ค์)
for ๋ฌธ์ ์กฐ๊ฑด์์ด ๊ฑฐ์ง์ผ๋ก ํ๊ฐ๋ ๋๊น์ง ์ฝ๋ ๋ธ๋ก์ ๋ฐ๋ณต ์คํธํ๋ค.
//for ๋ฌธ ์์ฑ ๋ฐฉ๋ฒ
for(๋ณ์ ์ ์ธ ๋๋ ๊ฐ์ ํ ๋น ; ์กฐ๊ฑด์ ; ์ฆ๊ฐ์){
์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ๊ฒฝ์ฐ, ์คํํ ์ฝ๋;
}
//์์ (์ผ๋ฐ์ ์ผ๋ก ๋ณ์๋ช
์ iteration(๋ฐ๋ณต)์ i๋ฅผ ์ฌ์ฉํ๋ค.)
for(var i = 0 ; i < 2 ; i++){
console.log(i);
}
//0
//1 ์ด ์์ฐจ์ ์ผ๋ก ๋ฐํ๋จ
for ๋ฌธ์ ๋ณ์ ์ ์ธ๋ฌธ, ์กฐ๊ฑด์, ์ฆ๊ฐ์์ ๋ชจ๋ ์ต์ ์ด๋ฏ๋ก ๋ฐ๋์ ์ฌ์ฉํ ํ์๋ ์์ผ๋ ๋จ ์ด๋ค ์๋ ์ ์ธํ์ง ์์ผ๋ฉด ๋ฌดํ๋ฃจํ๊ฐ ๋๋ค.
for ๋ฌธ ๋ด์ for ๋ฌธ์ ์ค์ฒฎํด ์ฌ์ฉํ ์ ์๋ค. ์ด๋ฅผ ์ค์ฒฉ for ๋ฌธ์ด๋ผ ํ๋ค.
//์ฃผ์ฌ์ 2๊ฐ ๊ตด๋ ค์ ํฉ์ด 6์ด ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ์ฐพ๊ธฐ
//๋ด๊ฐ ์ง์ ๋ง๋ค์ด ๋ณธ ์ฝ๋
for(var i = 1 ; i <= 6 ; i++){
for(var j = 1 ; j <= 6 ; j++){
if(i + j === 6){
console.log(i , j);
}
}
}
/*
1 5
2 4
3 3
4 2
5 1
*/
//์ฑ
์ ์์ ์์์ ์ฝ๋(์ค๊ดํธ ์๋ต๊ณผ ํ
ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ด์ฉํ์ฌ ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํจ)
for(var i = 1 ; i <= 6 ; i++){
for(var j = 1 ; j <= 6 ; j++){
if(i + j === 6) console.log(`[${i}, ${j}]`);
}
}
/*
[1, 5]
[2, 4]
[3, 3]
[4, 2]
[5, 1]
*/
8.3.2 while๋ฌธ
while ๋ฌธ์ ์ฃผ์ด์ง ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ด๋ฉด ์ฝ๋ ๋ธ๋ก์ ๊ณ์ํด์ ๋ฐ๋ณต ์คํํ๋ค. for ๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ๋ช ํํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๊ณ while ๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ๋ถ๋ช ํํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค. while ๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ๊ฑฐ์ง์ด ๋๋ฉด ์ฝ๋ ๋ธ๋ก์ ์คํํ์ง ์๊ณ ์ข ๋ฃํ๋ค. ๋ง์ฝ ์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ๋ถ๋ฆฌ์ธ ๊ฐ์ด ์๋๋ผ๋ฉด ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ์๋ฌต์ ํ์ ๋ณํ๋์ด true, false๋ฅผ ๊ตฌ๋ณํ๋ค.
var count = 0;
while(count < 3){
console.log(count);
count++;
}
/*
0
1
2
*/
โป์ฃผ์์ฌํญ
์กฐ๊ฑด์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์ธ์ ๋ ์ฐธ์ด๋ฉด ๋ฌดํ๋ฃจํ๊ฐ ๋๋ค. ์ด๋ฌํ ๋ฌดํ๋ฃจํ์์ ํ์ถํ๊ธฐ ์ํด์๋ ์ฝ๋ ๋ธ๋ก ๋ด์ if ๋ฌธ์ผ๋ก ํ์ถ ์กฐ๊ฑด์ ๋ง๋ค๊ณ break ๋ฌธ์ผ๋ก ์ฝ๋ ๋ธ๋ก์ ํ์ถํ๋ค.
var count = 0;
while(true){
console.log(count);
count++;
if(count === 3){
break;
}
}
/*
0
1
2
*/
8.3.3 do...while ๋ฌธ
do...while ๋ฌธ์ ์ฝ๋ ๋ธ๋ก์ ๋จผ์ ์คํํ๊ณ ์กฐ๊ฑด์์ ํ๊ฐํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ฝ๋ ๋ธ๋ก์ ๋ฌด์กฐ๊ฑด ํ ๋ฒ ์ด์์ ์คํ๋๋ค.
var count = 0;
do{
console.log(count);
count++;
} while(count < 3);
/*
0
1
2
*/
'๐ Language & CS knowledge > JavaScript (๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ Deep Dive)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
10์ฅ ๊ฐ์ฒด ๋ฆฌํฐ๋ด (0) | 2022.06.29 |
---|---|
09์ฅ ํ์ ๋ณํ๊ณผ ๋จ์ถ ํ๊ฐ (0) | 2022.06.28 |
07์ฅ ์ฐ์ฐ์ (0) | 2022.06.25 |
05์ฅ ํํ์๊ณผ ๋ฌธ, 06์ฅ ๋ฐ์ดํฐ ํ์ (0) | 2022.06.23 |
04์ฅ ๋ณ์ (0) | 2022.06.22 |