Responsive Advertisement

JavaScript ๋ฐ์ดํ„ฐ ํƒ€์ž… ์™„๋ฒฝ ๊ฐ€์ด๋“œ

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 ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๊ธฐ์ดˆ๋ฅผ ์ตํžˆ๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋˜์—ˆ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋Œ“๊ธ€ ์“ฐ๊ธฐ