JavaScript๋ ์น ๊ฐ๋ฐ์์ ๊ฐ์ฅ ์ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ค ํ๋๋ก, ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ค์ํ ๋ฐฉ์๊ณผ ์ด๋ฅผ ์ํ ์ฌ๋ฌ ๋ฐ์ดํฐ ํ์ (Data Types)์ ์ ๊ณตํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ์กฐ์ํ๊ธฐ ์ํด์๋ ๋ฐ์ดํฐ ํ์ ์ ์ ํํ ์ดํดํ๋ ๊ฒ์ด ํ์์ ๋๋ค. ์ด ๊ธ์์๋ JavaScript์ ์ฃผ์ ๋ฐ์ดํฐ ํ์ ๊ณผ ๊ทธ ํน์ง์ ์์๋ณด๊ฒ ์ต๋๋ค.
JavaScript์ ์ฃผ์ ๋ฐ์ดํฐ ํ์
JavaScript์์๋ ๋ฐ์ดํฐ๋ฅผ ํฌ๊ฒ ์์ ํ์ (Primitive Types)๊ณผ ์ฐธ์กฐ ํ์ (Reference Types)์ผ๋ก ๋๋ ์ ์์ต๋๋ค. ์์ ํ์ ์ ํ๋์ ๊ฐ๋ง์ ๊ฐ์ง๋ ๋จ์ํ ๋ฐ์ดํฐ ํ์ ์ ๋งํ๋ฉฐ, ์ฐธ์กฐ ํ์ ์ ๊ฐ์ฒด๋ ๋ฐฐ์ด๊ณผ ๊ฐ์ด ๋ณตํฉ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํ์ ์ ๋๋ค.
1. ์์ ๋ฐ์ดํฐ ํ์ (Primitive Types)
์์ ๋ฐ์ดํฐ ํ์ ์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ง์ ๊ฐ์ ์ ์ฅํ๋ ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค. JavaScript์์ ์ง์ํ๋ ์ฃผ์ ์์ ๋ฐ์ดํฐ ํ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1.1. String (๋ฌธ์์ด)
๋ฌธ์์ด์ ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ํ์
์ผ๋ก, ์์ ๋ฐ์ดํ('
)๋ ํฐ ๋ฐ์ดํ("
)๋ก ๋ฌถ์ด์ ํํํฉ๋๋ค.
let name = "John";
let greeting = 'Hello, world!';
๋ฌธ์์ด์ ์ฐ์ฐ์ ํตํด ๊ฒฐํฉํ ์ ์์ผ๋ฉฐ, ๋ค์ํ ๋ฉ์๋๋ฅผ ํตํด ์กฐ์ํ ์ ์์ต๋๋ค.
let fullName = "John" + " " + "Doe"; // ๊ฒฐ๊ณผ: "John Doe"
1.2. Number (์ซ์)
์ซ์ ํ์
์ ์ ์์ ์ค์๋ฅผ ๋ชจ๋ ํฌํจํ๋ฉฐ, JavaScript์์๋ ์ ์ํ(int)๊ณผ ๋ถ๋์์์ ํ(float)์ ๊ตฌ๋ถํ์ง ์๊ณ ๋ชจ๋ Number
ํ์
์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
let age = 30;
let temperature = 36.5;
์ซ์ ํ์ ์ ์ฐ์ ์ฐ์ฐ์ ํตํด ์ฝ๊ฒ ์กฐ์ํ ์ ์์ต๋๋ค.
let sum = 10 + 20; // ๊ฒฐ๊ณผ: 30
1.3. Boolean (๋ถ๋ฆฌ์ธ)
๋ถ๋ฆฌ์ธ ํ์
์ true
๋๋ false
๊ฐ์ ๊ฐ์ง๋ ๋ฐ์ดํฐ ํ์
์ผ๋ก, ์ฃผ๋ก ์กฐ๊ฑด๋ฌธ์์ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
let isAdult = true;
let isStudent = false;
1.4. Undefined
undefined
๋ ๊ฐ์ด ํ ๋น๋์ง ์์ ๋ณ์๋ฅผ ๋ํ๋
๋๋ค. ๋ณ์๋ฅผ ์ ์ธ๋ง ํ๊ณ ๊ฐ์ ํ ๋นํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก undefined
๊ฐ ์ค์ ๋ฉ๋๋ค.
let x;
console.log(x); // ๊ฒฐ๊ณผ: undefined
1.5. Null
null
์ ๋ช
์์ ์ผ๋ก "๊ฐ์ด ์๋ค"๋ ๊ฒ์ ๋ํ๋ผ ๋ ์ฌ์ฉํฉ๋๋ค. undefined
์๋ ๋ค๋ฅด๊ฒ, ์๋์ ์ผ๋ก ๊ฐ์ด ์์์ ๋ํ๋ด๋ ๊ฐ์
๋๋ค.
let y = null;
console.log(y); // ๊ฒฐ๊ณผ: null
1.6. Symbol (์ฌ๋ณผ)
Symbol
์ ECMAScript 2015(ES6)์์ ๋์
๋ ๊ณ ์ ํ๊ณ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์์ ํ์
์
๋๋ค. ์ฃผ๋ก ๊ฐ์ฒด์ ๊ณ ์ ํ ํ๋กํผํฐ ํค๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉ๋ฉ๋๋ค.
let sym = Symbol('description');
console.log(sym); // ๊ฒฐ๊ณผ: Symbol(description)
2. ์ฐธ์กฐ ๋ฐ์ดํฐ ํ์ (Reference Types)
์ฐธ์กฐ ํ์ ์ ๊ฐ์ฒด์ ๊ฐ์ ๋ณตํฉ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉฐ, ์ด๋ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐํ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
2.1. Object (๊ฐ์ฒด)
๊ฐ์ฒด๋ ํค์ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก, ์ฌ๋ฌ ๊ฐ์ ํ๋๋ก ๋ฌถ์ด์ ์ ์ฅํ ์ ์์ต๋๋ค. ์ค๊ดํธ {}
๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
let person = {
name: "John",
age: 30,
isAdult: true
};
๊ฐ์ฒด์ ์ ๊ทผํ๋ ค๋ฉด ์ ํ๊ธฐ๋ฒ(.
)์ด๋ ๋๊ดํธ ํ๊ธฐ๋ฒ([]
)์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
console.log(person.name); // ๊ฒฐ๊ณผ: John
console.log(person["age"]); // ๊ฒฐ๊ณผ: 30
2.2. Array (๋ฐฐ์ด)
๋ฐฐ์ด์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ ์ฅํ๋ ๋ฐ์ดํฐ ํ์
์
๋๋ค. ๋๊ดํธ []
๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ์์ฑํ๋ฉฐ, ๋ฐฐ์ด์ ๊ฐ ์์๋ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
let colors = ["red", "green", "blue"];
console.log(colors[0]); // ๊ฒฐ๊ณผ: red
๋ฐฐ์ด์ ๋ค์ํ ๋ฉ์๋๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ ์ ์์ต๋๋ค.
colors.push("yellow");
console.log(colors); // ๊ฒฐ๊ณผ: ["red", "green", "blue", "yellow"]
2.3. Function (ํจ์)
ํจ์๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ๋ธ๋ก์ผ๋ก, ํน์ ์์ ์ ์ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. JavaScript์์ ํจ์๋ ํ๋์ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ์ทจ๊ธ๋๋ฉฐ, ๋ณ์์ ํ ๋นํ๊ฑฐ๋ ๋ค๋ฅธ ํจ์์ ์ธ์๋ก ์ ๋ฌํ ์ ์์ต๋๋ค.
function greet() {
console.log("Hello, World!");
}
greet(); // ๊ฒฐ๊ณผ: Hello, World!
ํจ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์ ์ ์์ผ๋ฉฐ, ํ์ํ ๊ฐ์ ๋ฐํํ ์๋ ์์ต๋๋ค.
function add(a, b) {
return a + b;
}
console.log(add(10, 20)); // ๊ฒฐ๊ณผ: 30
๋ฐ์ดํฐ ํ์ ํ์ธํ๊ธฐ
JavaScript์์ ๋ณ์์ ๋ฐ์ดํฐ ํ์
์ ํ์ธํ๋ ค๋ฉด typeof
์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
let num = 100;
console.log(typeof num); // ๊ฒฐ๊ณผ: number
let name = "Alice";
console.log(typeof name); // ๊ฒฐ๊ณผ: string
๋์ ํ์ดํ
JavaScript๋ ๋์ ํ์ ์ธ์ด๋ก, ๋ณ์์ ๋ฐ์ดํฐ ํ์ ์ ๋ช ์์ ์ผ๋ก ์ ์ธํ์ง ์์ต๋๋ค. ์ฆ, ๋ณ์๋ ์ธ์ ๋ ์ง ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
let x = 10;
x = "Hello";
console.log(typeof x); // ๊ฒฐ๊ณผ: string
๊ฒฐ๋ก
JavaScript์ ๋ฐ์ดํฐ ํ์ ์ ์์ ํ์ ๊ณผ ์ฐธ์กฐ ํ์ ์ผ๋ก ๋๋๋ฉฐ, ๊ฐ๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ํน์ ์ํฉ์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด ๊ธ์ ํตํด JavaScript ๋ฐ์ดํฐ ํ์ ์ ๊ธฐ์ด๋ฅผ ์ตํ๊ณ , ์ด๋ฅผ ํ์ฉํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ํฐ ๋์์ด ๋์๊ธธ ๋ฐ๋๋๋ค.
๋๊ธ ์ฐ๊ธฐ