| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- ๊ฐ๋ฐ์ ์คํ
- ์๋จ
- ๋ทํ๋ฆญ์ค
- ๊ฐ๋จ๋จน์๊ณณ
- ์ง๋ฎค๋น
- ์ํผ๋ฐ
- Movie
- ํดํ ์ด๋ธ์ค์น
- ์ํ์ถ์ฒ
- ํดํ ์ด๋ธ์คํผ์ปค์ฐ๊ฒฐ
- ์ํ์ถ์ฒ์ ํ๋ธ
- ssgํธ๋๋ง์ผ๋๊ณก์
- ์ ํ์์น์ค๊ทธ
- ๋ฐ๋ ผ400
- ํฌ๋งํ์
- ์์ด์ ํ๋ธ์ถ์ฒ
- ์จ์ด๋ธ๊ตฌ๋
- Netflix
- English
- ์์ด๋ฌธ๋ฒ
- ์์ด๊ณต๋ถ
- ์กด์ผ
- dp400
- ์ ํ์์น์ค์ง
- ์ํ์ถ์ฒ์ ํ๋ฒ
- ssg๋๊ณก์
- ์์ด์ ํ๋ธ
- ์กฐ์ ํฐ๋ฆฌ์ค
- ์ฝ์คํ์ค๋ทํ
- ์์ดํฐ
- Today
- Total
๋ฆฌ์
[javascript] 1. JS๊ฐ์์ ์คํ ํ๊ฒฝ /๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ(Method Overloading) ๋ณธ๋ฌธ
[javascript] 1. JS๊ฐ์์ ์คํ ํ๊ฒฝ /๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ(Method Overloading)
๋ฆฌ์ ๐ซง 2026. 6. 24. 14:32
ํฌ๋ฆฝํธ ์ธ์ด์ ์๋ฐ์คํฌ๋ฆฝํธ
์คํฌ๋ฆฝํธ ์ธ์ด๋?
- ํ๋ก๊ทธ๋จ์ ๋์์ ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ์ํ๋๋๋ก ํด์ฃผ๋ ์ฉ๋
- ๋น๊ต์ ์ ์ฐํ๊ฒ ๋์ํ์ฌ ์ฝ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅ
์๋ฐ์คํฌ๋ฆฝํธ๋
- ์น ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ๋๋ ์ธํฐํ๋ฆฌํฐ ๋ฐฉ์์ ์คํฌ๋ฆฝํธ ์ธ์ด
- ๋ธ๋ผ์ฐ์ ์ ์์ง(V8)์ด ํ์ฌ๋์ด ์์ด ๋ณ๋์ ์ปดํ์ผ ์์ด ๋์
- ์ธํฐํ๋ฆฌํฐ ๋ฐฉ์: ์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ์ด๊ฐ๋ฉฐ ๋ฐ๋ก ์คํํ๋ ๋ฐฉ์
- ์ค์๊ฐ์ผ๋ก ํ ์คํธ๋ฅผ ๋ถ์ํด์ ์คํ → ๋ฌธ๋ฒ ์ค๋ฅ๊ฐ ์์ผ๋ฉด ๋ฐํ์ ์์ ์ ์๋ ค์ค
์น์ 3์์์์ JS์ ์ญํ
- HTML: ์น ๋ฌธ์์ ํฐ ํ์ ์ก์ ๋ ์ฌ์ฉ (DOM Tree ๊ตฌ์ฑ)
- CSS: HTML๋ก ๊ตฌ์ฑ๋ DOM์ ๋ค์ํ ์คํ์ผ ์์ฑ์ ๋ถ์ฌ
- JS: ์น ๋ฌธ์์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ์คํํ ๊ธฐ๋ฅ์ ์ ์ → HTML๋ก ๊ตฌ์ฑ๋ DOM์ ํธ์ง
js๋ฅผ ์น์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- inline(์ธ๋ผ์ธ): ํ๊ทธ ๋ด์์ ๊ฐ๋จํ ์์ค์ฝ๋๋ฅผ ์์ฑํด์ ์คํ๋๊ฒ ํ๋ ๋ฐฉ๋ฒ
- internal(๋ด๋ถ): HTML ๋ฌธ์ ๋ด์ ์์ค์ฝ๋๋ฅผ ์์ฑํด์ ์คํ๋๊ฒ ํ๋ ๋ฐฉ๋ฒ
- external(์ธ๋ถ): ๋ณ๋์ .js ํ์ผ๋ก ์์ค์ฝ๋๋ฅผ ์์ฑํด์ ๊ฐ์ ธ๋ค๊ฐ ์คํ๋๊ฒ ํ๋ ๋ฐฉ๋ฒ
inline
- ํํ๋ฒ: <ํ๊ทธ on์ด๋ฒคํธ๋ช ="ํด๋น ์์์ ์ด๋ฒคํธ ๋ฐ์์ ์คํํ ์ฝ๋">

internal
- <script> ํ๊ทธ ์์ญ ์์ ์์ค์ฝ๋๋ฅผ ์์ฑ
- <script> ํ๊ทธ๋ head, body ์ด๋์์๊ฑด ์ฌ์ฉ ๊ฐ๋ฅ

external
- ์ธ๋ถ์ .js ํ์ผ์ ์์ฑํด์ ๋ฐ๋ก js ์ฝ๋๋ฅผ ์์ฑ
- head ์์ญ์์ <script src="./sample.js"></script>๋ก ์ฐ๊ฒฐ

๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ(Method Overloading)์
์๋ฐ์ ๊ฐ์ ๊ฐ์ฒด์งํฅ ์ธ์ด์์ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ํ๋ ๊ฒ์ ์๋ฏธ.
๋จ์ํ ์ด๋ฆ๋ง ๊ฐ๋ค๊ณ ๋๋ ๊ฒ์ด ์๋๋ผ, ๋ฐ๋์ ์๋์ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํ๋ค.
๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ์ ํ์ ์กฐ๊ฑด
๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ์ด ์ฑ๋ฆฝํ๋ ค๋ฉด ๋ฉ์๋ ์ด๋ฆ์ ๊ฐ์์ผ ํ๋ฉฐ, ํ๋ผ๋ฏธํฐ(๋งค๊ฐ๋ณ์)์ ๊ตฌ์ฑ์ด ๋ฌ๋ผ์ผํ๋ค.
- ํ๋ผ๋ฏธํฐ์ ๊ฐ์๊ฐ ๋ฌ๋ผ์ผ ํ๋ค.
- ํ๋ผ๋ฏธํฐ์ ํ์ (์๋ฃํ)์ด ๋ฌ๋ผ์ผ ํ๋ค.
- ํ๋ผ๋ฏธํฐ์ ์์๊ฐ ๋ฌ๋ผ์ผ ํ๋ค.
์ฃผ์: ๋ฆฌํด ํ์ (๋ฐํํ)๋ง ๋ค๋ฅธ ๊ฒ์ ์ค๋ฒ๋ก๋ฉ ์กฐ๊ฑด์ด ์๋๋๋ค. ๋ฆฌํด ํ์ ์ ๋ฉ์๋ ํธ์ถ ์ ์ด๋ค ๋ฉ์๋๋ฅผ ์คํํ ์ง ๊ฒฐ์ ํ๋ ๋ฐ ์ํฅ์ ์ฃผ์ง ์๊ธฐ ๋๋ฌธ
ํ๋ก๊ทธ๋๋ฐ์์ ์ค์ฝํ(Scope)๋
'๋ณ์๋ ํจ์์ ์ ๊ทผํ ์ ์๋ ๋ฒ์'๋ฅผ ์๋ฏธํ๋ค.
์ฝ๊ฒ ๋งํด, "์ด๋์ ์ด ๋ณ์๋ฅผ ๊ฐ์ ธ๋ค ์ธ ์ ์๋๊ฐ?"๋ฅผ ๊ฒฐ์ ํ๋ ์์ญ
์ค์ฝํ๋ฅผ ์ดํดํ๋ฉด ํ๋ก๊ทธ๋จ ์์์ ๋ณ์ ์ด๋ฆ์ด ๊ฒน์ณ๋ ์๋ก ์ถฉ๋ํ์ง ์๋ ์ด์ ๋ฅผ ์ ์ ์๋ค.
1. ์ ์ญ ์ค์ฝํ (Global Scope)
์ฝ๋์ ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ์ ์ ์ธ๋ ๋ณ์. ํ์ผ ์ ์ฒด ์ด๋์๋ ์ฐธ์กฐํ ์ ์๋ค.
let globalName = "์ ์ญ ๋ณ์";
function print() {
console.log(globalName); // ํจ์ ์์์๋ ์ ๋์ํจ
}
2. ์ง์ญ ์ค์ฝํ (Local/Block Scope)
ํน์ ์ฝ๋ ๋ธ๋ก({ }) ์์์๋ง ์ ํจํ ๋ณ์. ๋ธ๋ก ๋ฐ์์๋ ์ด ๋ณ์๋ฅผ ์ ๋ ๋ถ๋ฅผ ์ ์๋ค.
function localFunction() {
let localName = "์ง์ญ ๋ณ์";
console.log(localName); // ํจ์ ์์์๋ ๊ฐ๋ฅ
}
// console.log(localName); // ์๋ฌ! ํจ์ ๋ฐ์์๋ ์ ๊ทผ ๋ถ๊ฐ
์ค์ฝํ์ ํต์ฌ ๊ท์น
- ์์ชฝ์์ ๋ฐ๊นฅ์ชฝ์ผ๋ก: ์์ชฝ ์ค์ฝํ๋ ๋ฐ๊นฅ์ชฝ ์ค์ฝํ์ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ํ์ง๋ง ๋ฐ๋๋ก, ๋ฐ๊นฅ์ชฝ ์ค์ฝํ์์๋ ์์ชฝ ์ค์ฝํ์ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ๊ฐ๊น์ด ๊ฒ์ด ์ฐ์ : ๋ณ์ ์ด๋ฆ์ด ๊ฒน์น๋ค๋ฉด, ํ์ฌ ๋ด๊ฐ ์๋ ๊ณณ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ค์ฝํ์ ์ ์๋ ๋ณ์๋ฅผ ๋จผ์ ์ฌ์ฉํ๋ค.
let name = "๋ฐ๊นฅ์ชฝ";
function outer() {
let name = "์์ชฝ"; // ๋ฐ๊นฅ์ชฝ name์ ๊ฐ๋ฆผ (Shadowing)
console.log(name); // "์์ชฝ" ์ถ๋ ฅ
}
์ ์ค์ฝํ๊ฐ ์ค์ํ๊ฐ์?
- ์ด๋ฆ ์ถฉ๋ ๋ฐฉ์ง: ์ค์ฝํ๊ฐ ์๋ค๋ฉด ๋ชจ๋ ๋ณ์ ์ด๋ฆ์ ๋ค ๋ค๋ฅด๊ฒ ์ง์ด์ผ ํด์ ์ฝ๋ฉ์ด ๋งค์ฐ ํ๋ค์ด์ง
- ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ: ์ฌ์ฉ์ด ๋๋ ์ง์ญ ๋ณ์๋ ํด๋น ์ค์ฝํ๋ฅผ ๋ฒ์ด๋๋ ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ๋ ์ ์์ด ํจ์จ์
- ๋ณด์: ์ธ๋ถ์์ ์ ๊ทผํ๋ฉด ์ ๋๋ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ํน์ ์ค์ฝํ ์์ ๊ฐ๋์ด ๋ณดํธํ ์ ์๋/
์๋ฐ์คํฌ๋ฆฝํธ ํ์ต ์ค์ let๊ณผ const๊ฐ ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ(์ค๊ดํธ { } ๋จ์)๋ฅผ ๋ฐ๋ฅธ๋ค๋ ์ ์ ๋งค์ฐ ์ค์. ๋ณ์๊ฐ ์ ์ธ๋ ์ค๊ดํธ ๋ฐ์ผ๋ก๋ ๋๊ฐ ์ ์๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
'๊ฐ๋ฐ์ ํธ์์ธ > Front' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [javaScript] 4. ์กฐ๊ฑด๋ฌธ (0) | 2026.06.26 |
|---|---|
| [javaScript] 2. ๋ณ์์ ์๋ฃํ / ํธ์ด์คํ (Hoisting) /์ฐ์ฐ์ (0) | 2026.06.24 |
| [JavaScript] 3. ํ๋ณํ (4) | 2026.06.24 |
| CSS ์ฝ๋์ ์น์ฌ์ดํธ์ ๊ตฌ์กฐ (0) | 2026.06.24 |
| Visual Studio Code ์ค์ต๋ฌธ์ ํบ์๋ณด๊ธฐ (0) | 2026.06.22 |
