์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฌด์์ธ๊ฐ? ๋ณ์, ์ค์ฝํ, ํ์ , ์กฐ๊ฑด๋ฌธ๊น์ง ๊ธฐ์ด ์์ ์ ๋ณต!
โ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฌด์์ธ๊ฐ?
์๋ฐ์คํฌ๋ฆฝํธ(JavaScript, JS)๋ ์นํ์ด์ง์ ๋์ ์ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค.
HTML์ด ๊ตฌ์กฐ, CSS๊ฐ ์คํ์ผ์ ๋ด๋นํ๋ค๋ฉด, JS๋ ๊ธฐ๋ฅ๊ณผ ์ํธ์์ฉ์ ๋ด๋นํฉ๋๋ค.
- ๋ฒํผ ํด๋ฆญ ์ ํ์ ๋์ฐ๊ธฐ
- ๋ก๊ทธ์ธ ํผ ์ ํจ์ฑ ๊ฒ์ฌ
- ์๋ฒ์์ ๋ฐ์ดํฐ ๋ฐ์์ ํ์ด์ง์ ๋ ๋๋ง
- ์ ๋๋ฉ์ด์ ํจ๊ณผ ๋ฑ
ํ์ฌ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋์ด Node.js ํ๊ฒฝ์์๋ ๋ฐฑ์๋ ๊ฐ๋ฐ๊น์ง ๊ฐ๋ฅํ ์ ๋๋ก ๋ฒ์ฉ์ฑ์ด ๋์ด์.
// ๊ฐ๋จํ ์๋ฐ์คํฌ๋ฆฝํธ ์์
console.log("Hello, World!"); // ์ฝ์์ ํ
์คํธ ์ถ๋ ฅ
document.getElementById("demo").innerHTML = "ํ์ํฉ๋๋ค!"; // HTML ์์ ๋ด์ฉ ๋ณ๊ฒฝ
โ ๋ณ์ ์ ์ธ (var, let, const)๊ณผ ์ค์ฝํ
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ์ด ๋ฐ๋ก ๋ณ์์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ณ์๋ฅผ ์ ์ธํ ๋ var, let, const ํค์๋๋ฅผ ์ฌ์ฉํ ์ ์์ด์.
๐น var (ES5 ์ด์ ๋ฐฉ์)
var name = 'Tom';
var name = 'Jane'; // ์ฌ์ ์ธ ๊ฐ๋ฅ
name = 'Mike'; // ์ฌํ ๋น ๊ฐ๋ฅ
- ์ฌ์ ์ธ ๊ฐ๋ฅ, ์ฌํ ๋น ๊ฐ๋ฅ
- ํจ์ ๋ ๋ฒจ ์ค์ฝํ
- ํธ์ด์คํ ๋ฐ์ (์ด๊ธฐ๊ฐ ์์ด undefined)
๐น let (ES6 ์ดํ ๊ถ์ฅ)
let age = 30;
// let age = 31; // โ ์ฌ์ ์ธ ๋ถ๊ฐ๋ฅ
age = 31; // โ
์ฌํ ๋น ๊ฐ๋ฅ
- ์ฌ์ ์ธ ๋ถ๊ฐ, ์ฌํ ๋น ๊ฐ๋ฅ
- ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ
- ํธ์ด์คํ ์ ๋์ง๋ง ์ด๊ธฐํ ์ ์ ๊ทผ ์ ์๋ฌ
๐น const (์์ ์ ์ธ)
const pi = 3.14;
// pi = 3.141592; // โ ์ฌํ ๋น ๋ถ๊ฐ๋ฅ
// ๊ฐ์ฒด์ ๋ด์ฉ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ
const person = { name: 'John' };
person.name = 'Jane'; // โ
๊ฐ๋ฅ
- ์ฌ์ ์ธ, ์ฌํ ๋น ๋ชจ๋ ๋ถ๊ฐ
- ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ ํ์
๐ ์ค์ฝํ๋?
๋ณ์๊ฐ ์ด๋์ ์ ํจํ๊ฐ? ๋ฅผ ๊ฒฐ์ ํ๋ ์์ญ
function example() {
let local = 'hello';
}
console.log(local); // โ ์ค๋ฅ: local is not defined
์ค์ฝํ ์ ํ | ์ค๋ช | ์์ |
๋ธ๋ก ์ค์ฝํ | {} ์ค๊ดํธ ๋ด์์๋ง ์ ํจ | let, const |
ํจ์ ์ค์ฝํ | ํจ์ ๋ด์์๋ง ์ ํจ | var |
์ ์ญ ์ค์ฝํ | ์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅ | ํจ์/๋ธ๋ก ์ธ๋ถ์ ์ ์ธ๋ ๋ณ์ |
โ ๋ฐ์ดํฐ ํ์ ๊ณผ ์ฐ์ฐ์
๐น ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฃผ์ ๋ฐ์ดํฐ ํ์
ํ์ | ์์ | ์ค๋ช |
Number | 1, 3.14, -100 | ์ ์์ ์์์ ์ซ์ |
String | "Hello", 'World' | ํ ์คํธ ๋ฐ์ดํฐ |
Boolean | true, false | ๋ ผ๋ฆฌ๊ฐ |
Null | null | ์๋์ ์ธ ๋น ๊ฐ |
Undefined | undefined | ์ ์ธ๋ง ํ๊ณ ๊ฐ ์์ |
Object | { key: "value" } | ํค-๊ฐ ์์ ์งํฉ |
Array | [1, 2, 3] | ์์๊ฐ ์๋ ๊ฐ์ ์งํฉ |
Function | function() {} | ์คํ ๊ฐ๋ฅํ ์ฝ๋ ๋ฌถ์ |
Symbol | Symbol('id') | ES6+, ๊ณ ์ ํ๊ณ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ |
BigInt | 123n | ES2020+, ํฐ ์ ์ ๋ค๋ฃฐ ๋ ์ฌ์ฉ |
let a = 10;
let b = "10";
console.log(a == b); // true (๋์จํ ๋น๊ต, ํ์
๋ณํ ํ ๋น๊ต)
console.log(a === b); // false (์๊ฒฉํ ๋น๊ต, ํ์
๊น์ง ๋น๊ต)
// ํ์
ํ์ธํ๊ธฐ
console.log(typeof 42); // "number"
console.log(typeof "Hello"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof { age: 30 }); // "object"
console.log(typeof [1, 2, 3]); // "object" (๋ฐฐ์ด๋ ๊ฐ์ฒด)
๐น ์ฐ์ฐ์
์ข ๋ฅ | ์ฐ์ฐ์ | ์์ | ์ค๋ช |
์ฐ์ | +, -, *, /, %, ** | 5 + 2 → 7 | ์ฌ์น์ฐ์ฐ |
๋น๊ต | ==, ===, !=, !==, >, <, >=, <= | 5 > 3 → true | ๊ฐ ๋น๊ต |
๋ ผ๋ฆฌ | &&, ||, ! | true && false → false | AND, OR, NOT |
ํ ๋น | =, +=, -=, *=, /= | x += 5 (x = x + 5) | ๋ณ์์ ๊ฐ ๋์ |
์ผํญ | ์กฐ๊ฑด ? ์ฐธ๊ฐ : ๊ฑฐ์ง๊ฐ | age >= 18 ? '์ฑ์ธ' : '๋ฏธ์ฑ๋ ์' | ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๊ฐ ๋ฐํ |
typeof | typeof | typeof "hello" | ๋ฐ์ดํฐ ํ์ ํ์ธ |
// ์ฐ์ ์ฐ์ฐ์ ์์
let sum = 10 + 5; // 15
let power = 2 ** 3; // 8 (2์ 3์น)
// ๋
ผ๋ฆฌ ์ฐ์ฐ์ ์์
let isValid = (age > 18) && (country === 'Korea'); // ๋ ๋ค true๋ฉด true
// ์ผํญ ์ฐ์ฐ์ ์์
let status = (score >= 60) ? 'ํฉ๊ฒฉ' : '๋ถํฉ๊ฒฉ';
โ ์กฐ๊ฑด๋ฌธ & ๋ฐ๋ณต๋ฌธ
๐น if / else ๋ฌธ
let age = 18;
if (age >= 20) {
console.log('์ฑ์ธ์
๋๋ค');
} else if (age >= 17) {
console.log('๊ณ ๋ฑํ์์
๋๋ค');
} else {
console.log('๋ฏธ์ฑ๋
์์
๋๋ค');
}
๐น switch ๋ฌธ
let day = 2;
switch (day) {
case 0:
console.log('์ผ์์ผ');
break;
case 1:
console.log('์์์ผ');
break;
case 2:
console.log('ํ์์ผ');
break;
default:
console.log('๊ธฐํ');
}
๐น for ๋ฐ๋ณต๋ฌธ
// ๊ธฐ๋ณธ for ๋ฐ๋ณต๋ฌธ
for (let i = 0; i < 5; i++) {
console.log(i); // 0, 1, 2, 3, 4 ์ถ๋ ฅ
}
// ๋ฐฐ์ด์ for...of ๋ฐ๋ณต๋ฌธ (ES6+)
const fruits = ['์ฌ๊ณผ', '๋ฐ๋๋', '๋ธ๊ธฐ'];
for (const fruit of fruits) {
console.log(fruit); // ์ฌ๊ณผ, ๋ฐ๋๋, ๋ธ๊ธฐ ์ถ๋ ฅ
}
// ๊ฐ์ฒด์ for...in ๋ฐ๋ณต๋ฌธ
const person = { name: 'John', age: 30, job: 'developer' };
for (const key in person) {
console.log(`${key}: ${person[key]}`);
}
๐น while / do-while ๋ฐ๋ณต๋ฌธ
// while ๋ฐ๋ณต๋ฌธ
let i = 0;
while (i < 3) {
console.log(i); // 0, 1, 2 ์ถ๋ ฅ
i++;
}
// do-while ๋ฐ๋ณต๋ฌธ (์กฐ๊ฑด์ด ๊ฑฐ์ง์ด์ด๋ ์ต์ 1๋ฒ์ ์คํ)
let j = 0;
do {
console.log(j); // ์ต์ ํ ๋ฒ์ ์ถ๋ ฅ๋จ
j++;
} while (j < 3);
โจ ๋ง๋ฌด๋ฆฌ ์์ฝ
ํญ๋ชฉ | ํต์ฌ ์์ฝ |
๋ณ์ ์ ์ธ | var๋ณด๋ค let๊ณผ const๋ฅผ ์ฌ์ฉํ์ |
์ค์ฝํ | let/const๋ ๋ธ๋ก, var๋ ํจ์ ์ค์ฝํ |
๋ฐ์ดํฐ ํ์ | ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฐ ๋ฑ ๊ธฐ๋ณธ ํ์ ๊ณผ ์ฐธ์กฐ ํ์ ์์ง |
ํ์ ๋น๊ต | ==๋ณด๋ค ===๋ฅผ ์ฌ์ฉํ์ฌ ํ์ ๊น์ง ์ ํํ ๋น๊ต |
์กฐ๊ฑด๋ฌธ | if, switch๋ก ํ๋ฆ ์ ์ด |
๋ฐ๋ณต๋ฌธ | for, while, for...of, for...in์ผ๋ก ๋ฐ๋ณต ์ฒ๋ฆฌ |
๋ค์ ๊ธ Part 2์์๋
๐ ํจ์ ์ ์ธ์๊ณผ ํํ์, ๊ฐ์ฒด/๋ฐฐ์ด ๋ค๋ฃจ๊ธฐ, DOM ์กฐ์, this์ ์คํ ์ปจํ ์คํธ, ํธ์ด์คํ ๋ฑ
์ค๋ฌด์์ ์ง์ง ๋ง์ด ์ฐ์ด๋ ๋ด์ฉ๋ค์ ๋ค๋ฃฐ ์์ ์ ๋๋ค!
'๐จ Frontend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ๊ธฐ๋ณธ ๋ค์ง๊ธฐ - Part 2 (0) | 2025.04.27 |
---|---|
์น ํ์ด์ง ๋ ์ด์์ ์ ๋๋ก ์ก๊ธฐ (0) | 2025.04.23 |
CSS๋ก ์คํ์ผ๋ง ์์ํ๊ธฐ (0) | 2025.04.10 |
HTML ๊ธฐ๋ณธ๊ธฐ ๋ค์ง๊ธฐ (0) | 2025.04.09 |
์น์ ์ด๋ป๊ฒ ์๋ํ ๊น? (0) | 2025.04.08 |