Responsive Advertisement

JavaScript const ํ‚ค์›Œ๋“œ ์ดํ•ดํ•˜๊ธฐ

JavaScript์—์„œ const ํ‚ค์›Œ๋“œ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ES6(ECMAScript 2015)์—์„œ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. const๋Š” 'constant(์ƒ์ˆ˜)'์˜ ์•ฝ์ž๋กœ, ํ•œ ๋ฒˆ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์žฌํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” const์˜ ํŠน์ง•๊ณผ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

const ํ‚ค์›Œ๋“œ๋ž€?

const๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ๋กœ, ์ƒ์ˆ˜ ๊ฐ’์„ ์œ ์ง€ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•˜๋ฉฐ, ์ดํ›„์—๋Š” ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

const์˜ ์ฃผ์š” ํŠน์ง•

  • ์žฌํ• ๋‹น ๋ถˆ๊ฐ€: const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ํ•œ ๋ฒˆ ๊ฐ’์„ ํ• ๋‹นํ•œ ํ›„, ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์žฌํ• ๋‹นํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ธ”๋ก ์Šค์ฝ”ํ”„(Block Scope): const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด๋Š” ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ๋ธ”๋ก ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…: const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋„ ํ˜ธ์ด์ŠคํŒ…์ด ๋˜์ง€๋งŒ, ์ดˆ๊ธฐํ™” ์ „์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•˜๋ฉด ReferenceError๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ์ฒด์™€ ๋ฐฐ์—ด: const๋กœ ์„ ์–ธ๋œ ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ, ์ฐธ์กฐ ์ž์ฒด๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ, ๋‚ด๋ถ€ ์†์„ฑ์ด๋‚˜ ์š”์†Œ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const ์‚ฌ์šฉ ์˜ˆ์ œ

์žฌํ• ๋‹น ๋ถˆ๊ฐ€

const ๋ณ€์ˆ˜๋Š” ํ•œ ๋ฒˆ ํ• ๋‹น๋œ ์ดํ›„์—๋Š” ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์˜๋„์น˜ ์•Š์€ ๋ณ€์ˆ˜์˜ ๋ณ€๊ฒฝ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const name = "Alice";
// name = "Bob"; // Error: Assignment to constant variable.
console.log(name); // "Alice"

์œ„ ์˜ˆ์ œ์—์„œ name ๋ณ€์ˆ˜๋Š” const๋กœ ์„ ์–ธ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ธ”๋ก ์Šค์ฝ”ํ”„

const ๋ณ€์ˆ˜๋„ let๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ๋งŒ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์™ธ๋ถ€์—์„œ๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

function example() {
    const x = 10;
    if (true) {
        const x = 20;
        console.log(x); // 20
    }
    console.log(x); // 10
}
example();

์œ„ ์˜ˆ์ œ์—์„œ x ๋ณ€์ˆ˜๋Š” ๋‘ ๋ฒˆ ์„ ์–ธ๋˜์—ˆ์ง€๋งŒ, ์„œ๋กœ ๋‹ค๋ฅธ ๋ธ”๋ก์— ์†ํ•ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๊ฐ์ฒด์™€ ๋ฐฐ์—ด

const๋กœ ์„ ์–ธ๋œ ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ, ์ฐธ์กฐ ์ž์ฒด๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ, ๋‚ด๋ถ€์˜ ์†์„ฑ์ด๋‚˜ ์š”์†Œ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const person = {
    name: "Alice",
    age: 30
};

person.age = 31; // ๊ฐ€๋Šฅ
console.log(person.age); // 31

const numbers = [1, 2, 3];
numbers.push(4); // ๊ฐ€๋Šฅ
console.log(numbers); // [1, 2, 3, 4]

์œ„ ์˜ˆ์ œ์—์„œ person ๊ฐ์ฒด์™€ numbers ๋ฐฐ์—ด์€ const๋กœ ์„ ์–ธ๋˜์—ˆ์ง€๋งŒ, ๋‚ด๋ถ€์˜ ๊ฐ’์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

const ํ‚ค์›Œ๋“œ๋Š” ์ƒ์ˆ˜ ๊ฐ’์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋ฉฐ, ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ๋ธ”๋ก ์Šค์ฝ”ํ”„์™€ ์žฌํ• ๋‹น ๋ถˆ๊ฐ€์˜ ํŠน์„ฑ์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜๋ฉด, ์˜๋„์น˜ ์•Š์€ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ๋” ์•ˆ์ •์ ์ธ JavaScript ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JavaScript๋ฅผ ์ž‘์„ฑํ•  ๋•Œ const๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•ด๋ณด์„ธ์š”!

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