2021. 8. 7. 01:00ใ๐ TIL
ToastUI ๊ธฐ์ ๋ธ๋ก๊ทธ์ ํฅ๋ฏธ๋ก์ด ์ฝ์๊ฑฐ๋ฆฌ๊ฐ ๋ง๋ค. ๊ทธ์ค์์ switch(true) ํจํด์ ๊ดํ ๊ธ์ด ํฅ๋ฏธ๋ก์ ํ์ฌ ์ฝ๋์ ์ ์ฉํด๋ณด์๋ค.
๐ switch(true) ์ ๊ธฐ๋ณธ ์๋ฆฌ
์ฐ์ switch(true) ํจํด์ ์๋ฆฌ๋, ๊ธฐ์กด switch ๋ฌธ์ ์ ์ฉํ๋ ๊ฐ(value)์ ํํ์์ผ๋ก๋ ๋์ฒดํ ์ ์๋ค. ์ฌ๊ธฐ์ ํํ์์ด๋ boolean ๊ฐ์ ๋ฆฌํดํ๋ ์์ ์๋ฏธํ๋ค.
๐ฟ ๊ธฐ๋ณธ switch(Value) ํจํด
๊ธฐ์กด switch๋ฌธ ์ธ์์ Value๋ ํน์ ํ ๊ฐ(value) ๋ฅผ ์๋ฏธํ๋ค. Value ๋ณ์๊ฐ ์ด๋ค ๊ฐ์ ๊ฐ์ง๋์ ๋ฐ๋ผ ํด๋น case ๋ฌธ์ ์คํํ๋ค.
์ฝ๊ฒ ์๊ฐํ์ฌ Value ๊ฐ์ด case์ ๊ฐ๊ณผ ์ผ์นํ๋ ๊ฒ์ ์ฐพ๋ ๊ณผ์ ์ด๋ค,.
// ๊ธฐ์กด switch ๋ฌธ
switch (Value){
case "A":
return "this is A";
case "B":
return "thid is B";
}
๐ฟ switch(true) ํจํด
switch(true) ํจํด์ ํน์ Value ๊ฐ ๋์ true๋ฅผ ๋ฐ์๋ค. Value๊ฐ true๋ผ๊ณ ์๊ฐํด๋ ์ข๋ค.
case์ ํํ์์ด true ๋ฅผ ๋ฆฌํดํ๋ฉด, Value ์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ํด๋น case ๋ฌธ์ด ์คํ๋๋ค.
// switch(true) ํจํด
const member = ["lion", "cat"]
switch (true){
case member.includes("lion"): // true ์ด๊ธฐ ๋๋ฌธ์ ์คํ
return "it is lion king";
case member.includes("tiger"): // false ์ด๊ธฐ ๋๋ฌธ์ ์คํX
return "it is tiger king";
}
์ค์ ์์ ์ ์ฉํ ์ฝ๋ ์์
switch(true) ํจํด์ ๋ณต์กํ if/else ๊ตฌ๋ฌธ์ ๋์ฒดํ์ฌ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์๋ค. ํ์ฌ์์ if ๊ฐ ๋ก์น ๋ ์ฝ๋๋ฅผ ์ฐพ์ ์ด ํจํด์ ์ ์ฉํด๋ดค๋ค.
์๋๋ statusList ๋ผ๋ ๋ฐฐ์ด์ด ์ด๋ค ์์๋ฅผ ํฌํจ ํ๋์ง์ ๋ฐ๋ผ if ๋ถ๊ธฐ๋ฌธ์ ํ๊ฒ ๋๋ค.
// ๊ธฐ์กด if ์กฐ๊ฑด๋ฌธ
if (statusList.includes("๋๊ธฐ")) {
...
}
if (statusList.includes("์งํ์ค")) {
...
}
if (statusList.includes("์๋ฃ")) {
...
}
์ค์ ๋ก๋ if ๋ฌธ์ด ๋ ์์ง๋ง ์์๋ก 3๊ฐ๋ง ์จ๋์๋ค.
์ด๋ฅผ ์๋์ฒ๋ผ ์์ ํ๋ฉด ๊ฐ๋ ์ฑ ์ธก๋ฉด์์ ๋ ์ง๊ด์ ์ธ ์ฝ๋๊ฐ ๋์๋ค.
ํ์ง๋ง, ์ด๋ ๊ฐ์ธ์ ์๊ฒฌ์ผ ๋ฟ์ด๊ณ , ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ ์คํ๋ ค ๊ฐ๋ ์ฑ์ด ์ข์ง ์๋ค๋ ์๊ฒฌ๋ ๋ง์ด ๋๋ค.(์ฐธ๊ณ : @SeanBarryUK ํธ์, @JavaScriptDaily ํธ์)
// switch(true) ํจํด ์ ์ฉ ํ
switch (true) {
case statusList.includes("๋๊ธฐ"):
...
break;
case statusList.includes("์งํ์ค"):
...
break
case statusList.includes("์๋ฃ"):
...
break
default:
...
break
}
ํ์๊ฐ ๋๋ ์ด ํจํด์ ์ฅ์ ์ ์กฐ๊ฑด์ ์ฐ์ ์์์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ผ ํ ๋๋ค.
๊ธฐํ์๊ฐ ์ด๋ฐ ์๊ตฌ๋ฅผ ํ๋ค๊ณ ์๊ฐํด๋ณด์.
๋ง์ฝ ๋ฐฐ์ด statusList ๊ฐ '๋๊ธฐ' ์ '์งํ์ค' ์์๋ฅผ ๋ชจ๋๋ฅผ ๊ฐ์ง๋ค๋ฉด, "๋๊ธฐ" ์ผ๋์ ์ํฉ์ ์ฐ์ ์ ํ์ฌ ์คํ์์ผ์ฃผ์ธ์!
if/else ๋ฌธ์ผ๋ก ์ด๋ฅผ ๊ตฌํํ๋ ค๋ฉด ๋ณต์กํ or ์กฐ๊ฑด์ ๋ก์น ํด์ผ๊ฒ ์ง๋ง, switch(true) ํจํด์์ ,
๊ทธ์ case "๋๊ธฐ" ๋ฅผ case "์งํ์ค" ๋ณด๋ค ๋จผ์ ๋ฐฐ์นํ๋ฉด ํด๊ฒฐ๋๋ค. "๋๊ธฐ"์ case ๋ฅผ ๋จผ์ ๋ง๋๊ณ break ๋ก switch ๋ฌธ์ ๋น ์ ธ๋์ค๋ฉด ๊ทธ๋ง์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ๋ ์ฑ๋ ์ค์ํ ๋ฌธ์ ์ด์ง๋ง, ์ด๋ค ์ํฉ์ด๋ ๊ธฐํ ์๊ตฌ์ ๋ฐ๋ผ ์ ์ ํ ์ ํํ์ฌ ์ฌ์ฉํ๋ฉด ์ข์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ฒ ๋ค.
Toast UI ๊ธฐ์ ๋ธ๋ก๊ทธ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ switch (true) ํจํด ์ฌ์ฉํ๊ธฐ ํฌ์คํธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์์ต๋๋ค.
'๐ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
210809 ๊ฐ๋ฐ๊ธฐ๋ก: ์๊ฒฉ์ ๋ธ๋์น ๋ฐ์์ค๊ธฐ (0) | 2021.08.10 |
---|---|
210807 ๊ฐ๋ฐ๊ธฐ๋ก: var, let ์ ์ฐจ์ด(feat. ํธ์ด์คํ ) (0) | 2021.08.08 |
210805 ๊ฐ๋ฐ๊ธฐ๋ก: ์ ํ๊ธฐ๋ฒ๊ณผ ๊ดํธ ํ๊ธฐ๋ฒ (dot notation, bracket notaion) (0) | 2021.08.05 |
210804 ๊ฐ๋ฐ๊ธฐ๋ก: nestjs ํ ์คํธ์ฝ๋ (0) | 2021.08.04 |
210803 ๊ฐ๋ฐ๊ธฐ๋ก: moment.js (0) | 2021.08.03 |