[Frontend] Java Script & jQuery Library
Chapter #5 ๋์์ ์ฒ๋ฆฌํ๋ Java Script & ์ ์ด์ฟผ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Section 1. Java Script ๊ฐ์
โด๏ธ Java Script๋?
: ๋ท์ค์ผ์ดํ์ฌ์์ ์น ํ์ด์ง์ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ํฅ์์ํฌ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐํ LiveScript ๊ธฐ๋ฐ
: ๋ท์ค์ผ์ดํ์ฌ์ ์ ๋ง์ดํฌ๋ก์์คํ ์ฆ๊ฐ ๊ณต๋์ผ๋ก ๊ฐ๋ฐํ ์คํฌ๋ฆฝํธ ์ธ์ด
: ์ฐ์ฌ์์ ์ ์ด๋ฌธ์ C/C++๊ณผ ์ ์ฌ, ๊ฐ์ฒด์งํฅ์ ์์ ๋ฐฉ์์ ํ๋กํ ํ์ (Prototype) ๊ธฐ๋ฐ
• ํ๋กํ ํ์ ๊ธฐ๋ฐ(Prototype-based)
: ๊ฐ์ฒด์งํฅ์ ํ ํํ, ํด๋์ค๊ฐ ์์ด ๊ฐ์ฒด์ ํ๋กํ ํ์ ์ ๋ณต์ ํด์ ์ฌ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์์
• ์น์์์ HTML์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, HTML ํ๊ทธ์ ์ด๋ค ๋์์ ๋ถ์ฌํด์ ์์ ์ ์ฒ๋ฆฌ
โด๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
: JS๋ฅผ ๊ธฐ์ ๋ฐ ์ฌ์ฉํ ๋๋ <script> ํ๊ทธ๋ฅผ ์ฌ์ฉํด์ ํจ
: HTML ํ์ด์ง ๋ด๋ถ์ ํฌํจํด์ ์์ฑํ ์ ์๊ณ , ๋ณ๋์ ํ์ผ๋ก ์์ฑ ํ ํ์ํ ํ์ด์ง์์ ๊ฐ์ ธ๋ค ์ธ ์ ์์
: ์ฌ์ฌ์ฉ์ฑ์ ์ํด ์ธ๋ถ ํ์ผ๋ก ์ ์ฅํ ํ ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์
: ์ผ์ข ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ ์ญํ
→ HTML ํ์ด์ง ๋ด๋ถ์ ํฌํจํด์ ์์ฑํ๋ ๋ฐฉ๋ฒ
<script>
// ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ๊ธฐ์
</script>
→ ๋ณ๋์ ํ์ผ๋ก ์์ฑ ํ ํ์ํ ํ์ด์ง์์ ๊ฐ์ ธ๋ค ์ฐ๋ ๋ฐฉ๋ฒ
<script src = "๊ฒฝ๋ก๋ฅผ ํฌํจํ ์๋ฐ์คํฌ๋ฆฝํธํ์ผ๋ช
"></script>
โด๏ธ ๋ฌธ์ฅ ๊ตฌ์กฐ
• ์ ๋์ฝ๋(Unicode) ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
• ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถ
• ๋ฌธ์ฅ์ ๋์ ์ธ๋ฏธ์ฝ๋ก (;)์ผ๋ก ๊ตฌ๋ถ
• ์๋ฐ, C๊ณ์ด์ ์ฃผ์์ธ //, /**/๋ฅผ ์ฌ์ฉ
• ์๋ฐ์ ๋ฆฌํฐ๋ด(๋ฐ์ดํฐ์ ๊ฐ)
: ๋ฆฌํฐํธ = ๊ฐ์ ์๋ฏธ, ์ซ์ ํ์
์ ๊ทธ๋ฅ ๊ธฐ์ , ๋ฌธ์์ด ํ์
์ ํฐ๋ฐ์ดํ("")๋ก ํํ
: boolean, character, ํจ์, ๊ฐ์ฒด, ๋ฐฐ์ด ๊ฐ๋ ๋ฆฌํฐ๋ด๋ก ์ทจ๊ธ
• ์๋ณ์ ๊ท์น
: ์ฒซ๊ธ์๋ ์๋ฌธ์, _, $ ์ฌ์ฉ ๊ฐ๋ฅ, ๋๋จธ์ง ๊ธ์๋ ์ซ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
• ๋ณ์ ์ ์ธ
: var ํค์๋๋ฅผ ์ฌ์ฉ
var ๋ณ์๋ช
= ๋ฆฌํฐ๋ด;
• ํค์๋
: ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง
: ํด๋น ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ํน๋ณํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋จ์ด๊ธฐ ๋๋ฌธ์, ๋ชฉ์ ์ธ์ ๊ฒ์ผ๋ก ์ฌ์ฉํ ์ ์์
if = 5; ์ ๊ฐ์ด ๋ณ์๋ช
์ผ๋ก ์ฌ์ฉ ๋ถ๊ฐ
โด๏ธ ๋ฐ์ดํฐ ํ์
: ๋ฐ์ดํฐ ํ์ ์๋ ์ซ์, ๋ฌธ์, ๋ถ์ธ, ๊ฐ์ฒด, undefined, null, empty ๋ฑ์ด ์์
: ๊ธฐ๋ณธ๋ฐ์ดํฐ ํ์ ๊ณผ ๊ฐ์ฒด ํ์ ์ผ๋ก ๋๋จ
• ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
โ ์ซ์ : ์ฐ์ ์ฐ์ฐ์ ์ฌ์ฉ 0~9, ๋ถํธ, ์์์ ์ผ๋ก ์ด๋ฃจ์ด์ง
โก ๋ฌธ์์ด : ์ซ์, ๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด ๋ฐ์ดํฐ, " ๋๋ ' ๋ก ๋๋ฌ์ธ์ ํํ
โข boolean : true ๋๋ false ๊ฐ์ ์ฐพ๋ ํ์ ํํ์ ์ฌ์ฉ
• ์ฐธ์กฐ ๋ฐ์ดํฐ ํ์ : ๊ฐ์ฒด ํ์
: ๊ฐ์ฒด ๋ฐ ๋ฐฐ์ด, ํจ์, ์ ๊ท ํํ์๋ ๊ฐ์ฒด ํ์ ์ผ๋ก ์ทจ๊ธ
โ ๊ฐ์ฒด {} : {} ์์ property, method ๋ฑ์ ๊ธฐ์ , ์ผํ(,)๋ฅผ ์ฌ์ฉํด์ ๋์ด
var ๊ฐ์ฒด๋ณ์๋ช
= {ํ๋กํผํฐ, ๋ฉ์๋};
โก ๋ฐฐ์ด [] : [] ์์ ๋ฐฐ์ด์ ์์๋ฅผ ์ผํ(,)๋ฅผ ์ฌ์ฉํด์ ๋์ด
var ๋ฐฐ์ด๋ณ์๋ช
: [์์1, ์์2, ...];
โข ํจ์ : function(){}
: ์ต๋ช ํจ์๋ฅผ ๋ณ์์ ๋ฃ์ด์ ์ฌ์ฉํ๋ ํจ์ ๋ฆฌํฐ๋ด์ ๊ถ์ฅ
: ์คํ ๊ฒฐ๊ณผ๋ฅผ ํจ์๋ฅผ ํธ์ถํ ๊ณณ์ผ๋ก ๋ฐํํ๋ ค๋ฉด return ๊ฐ; ๊ณผ ๊ฐ์ ํํ๋ก ๊ธฐ์
• ๋ณ์ ์ ์ธ ๋ฐฉ๋ฒ
: ๋ณ์๋ ๊ฐ ์ ์ฅ์๋ก ํ๋ก๊ทธ๋จ์์ ํ์ํ ๊ฐ์ ์ผ์๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ
โด๏ธ ํ๋ก๊ทธ๋๋ฐ ๊ถ๊ณ ์ฌํญ
• ์ ์ญ๋ณ์๋ ๊ฐ๊ธ์ ์ฌ์ฉ์ ์์
• ์ง์ญ๋ณ์๋ฅผ ์ฌ์ฉ์ ์ ์ธํ๊ณ ์ฌ์ฉ
• ์ฐธ์กฐ๋์์ ๋จผ์ ์ ์ธํ๊ณ ์ฌ์ฉ
• ๋ณ์๋ ์ฌ์ฉ ์ ์ ์ด๊ธฐํ
• ์ซ์, ๋ฌธ์, boolean ๊ฐ์ ๊ฐ์ฒด ํํ๋ก ์ฐ์ง ์์
• ๋ฌธ์์ด, ๊ฐ์ฒด, ๋ฐฐ์ด, ํจ์ ์์ฑ์ new ํค์๋๋ฅผ ์ฌ์ฉํด์ ์์ฑํ์ง ์์
• ์๋ ํ๋ณํ์ ์ฃผ์
Section 2. ์ ์ด๋ฌธ
: ์คํ ์์๋ฅผ ์ ์ดํ๋ ์ ์ด๋ฌธ์๋ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ, ๊ธฐํ ์ ์ด๋ฌธ์ด ์์
• ์กฐ๊ฑด๋ฌธ : ์กฐ๊ฑด์ ์ฌ์ฉํด์ ํ๋ก๊ทธ๋จ ์คํ ์์ ์ ์ด
→ if๋ฌธ, switch๋ฌธ : switch๋ฌธ์ ์์ฆ ์ ์ฌ์ฉํ์ง ์์
• ๋ฐ๋ณต๋ฌธ : ํ๋ก๊ทธ๋จ ์คํ์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ ์ ์ด
→ for๋ฌธ, while๋ฌธ, do-while๋ฌธ
• ๊ธฐํ ์ ์ด๋ฌธ : ๊ทธ ๋ฐ์ ํ๋ก๊ทธ๋จ ์คํ ์์ ์ ์ด
→ break๋ฌธ, continue๋ฌธ : ๋ฐ๋ณต๋ฌธ์ ํ์ถ ๋๋ ์ผ์ ํ์ถ
→ with๋ฌธ : ๊ฐ์ฒด ์๋ต
→ try-catch-finally๋ฌธ : ์์ธ์ฒ๋ฆฌ
โด๏ธ ์กฐ๊ฑด๋ฌธ
• if๋ฌธ
: ์ฃผ์ด์ง ๊ฐ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ 2๊ฐ๋ก ๋ถ๊ธฐ ์ ์ฌ์ฉ, ์กฐ๊ฑด๊ณผ ๊ฒฐ๊ณผ๋ก ๊ตฌ์ฑ
• ๊ธฐ๋ณธ if๋ฌธ
: ์ฃผ์ด์ง ๊ฐ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ 2๊ฐ๋ก ๋ถ๊ธฐ๋ ๋ ์ฌ์ฉ
: ์กฐ๊ฑด์ ๋ง์กฑํ ๋์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ ๋ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์
• ๋ค์ค if๋ฌธ
: ์ฃผ์ด์ง ๊ฐ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ 3๊ฐ ์ด์์ผ๋ก ๋ถ๊ธฐ์ผ ๋ ์ฌ์ฉ
• switch๋ฌธ
: ํํ์์ ๊ฐ์ ๋ฐ๋ผ ๋ถ๊ธฐ๋๋ ์ ์ด๋ฌธ
: ๋ค์ค if๋ฌธ์ ๋์ฒดํ ๋ ์ฃผ๋ก ์ฌ์ฉ
: ํํ์์ ๊ฒฐ๊ณผ๊ฐ ์ ์๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๊ถ์ฅํ์ง ์์
• ์กฐ๊ฑด ์ฐ์ฐ์
: ๊ฐ๋จํ ์กฐ๊ฑด๋ฌธ ๊ตฌํ์ ์ฌ์ฉ
: ? : ์ฐ์ฐ์๋ฅผ ์ฌ์ฉ
// ๋ฌธ๋ฒ
(์กฐ๊ฑด) ? ์ฐธ : ๊ฑฐ์ง ;
โด๏ธ ๋ฐ๋ณต๋ฌธ
: ๋ฐ๋ณต ์์ ์ฒ๋ฆฌ์ ์ฌ์ฉ, ์ฌ๋ฌ ๊ฑด์ ์์ ์ฒ๋ฆฌ์ ์ฌ์ฉ
: ์นด์ดํฐ ๋ณ์๋ ๋ฐ๋ณต๋ฌธ์ ๋ฐ๋ณต ํ์๋ฅผ ์ ์ดํ๊ธฐ ์ํด์ ์ฌ์ฉ
• for๋ฌธ → ํ์ ๋ฐ๋ณต
: ์ง์ ๋ ํ์๋งํผ ๋ฐ๋ณต์ํํ ๋ ์ฌ์ฉ
• for-in๋ฌธ
: ๊ฐ์ฒด ๋ด์ ํ๋กํผํฐ ์๋งํผ ๋ฐ๋ณต ์ํํ ๋ ์ฌ์ฉ
• for-of๋ฌธ → ๊ฐ์ฒด ๋ฐ๋ณต
: ๊ฐ์ฒด ๋ด์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ณตํ ๋ ์ฌ์ฉ → ์ปฌ๋ ์ ์ ๋ฐ๋ณต
: ์ปฌ๋ ์ → ๊ฐ์ฒด๊ฐ ๊ฐ์ฒด์ ๊ฐ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ ๊ฒ
// ๋ฌธ๋ฒ
for(let ๋ณ์ of ์ปฌ๋ ์
){
// ์ฒ๋ฆฌํ ๋ฌธ์ฅ
}
for-of๋ฌธ : ์ปฌ๋ ์
๋ด์ ๊ฐ์ฒด์ ๋ฐ๋ณต
let๋ฌธ : ๊ฐ์ฒด์ ์ฅ ๋ณ์์ ๊ฐ ํ ๋น
• while๋ฌธ
: ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋์ ๋ฐ๋ณต์ํํ๋ ์ ์ด๋ฌธ, for๋ณด๋ค ์ํ์๋๊ฐ ๋๋ฆผ
: ๊ฐ์ฒด๋ฐ๋ณต์ ์ฃผ๋ก ํ๊ธฐ ๋๋ฌธ์ ๋ฌดํ๋ฃจํ๋ฅผ ์ฌ์ฉํ ๋๋ฅผ ์ ์ธํ๊ณ ๋ ์ ์ฌ์ฉ๋์ง ์์
• do-while๋ฌธ
: ์ผ๋จ 1๋ฒ ์คํ ํ ์กฐ๊ฑด๋น๊ต ๋ฐ๋ณต์ ํ ๋ ์ฌ์ฉํ๋ ์ ์ด๋ฌธ
: ๋ฐ๋์ 1๋ฒ ์ํ ํ ์กฐ๊ฑด์ ๋น๊ต
: ํน์ํ ์ํฉ์์๋ง ์ฌ์ฉ
โด๏ธ ๊ธฐํ ์ ์ด๋ฌธ
• break๋ฌธ → ๋ฐ๋ณต๋ฌธ ์์ ํ์ถ
: ํน์ ์กฐ๊ฑด ๋ง์กฑ์ while๋ฌธ ์์์ ๋ฌดํ๋ฃจํ ๋๋ for๋ฌธ์ ์ฌ์ฉํ ๋ฐ๋ณต๋ฌธ ์ค๋จ์ ์ฌ์ฉ
while(true){ // ๋ฌดํ๋ฃจํ
if(์กฐ๊ฑด){
break;
}
}
• continue๋ฌธ
: ํน์ ์กฐ๊ฑด์ ๋ง์กฑ์ ๋ฐ๋ณต๋ฌธ์ ์ผ์์ ์ผ๋ก ํ์ถํ๋ค๊ฐ ๋ค์ ๋ฐ๋ณต๋ฌธ ์ํ