Post

자바스크립트의 확장 문법

안녕하세요! 오늘은 자바스크립트의 확장 문법에 대해 알아보겠습니다. 특히 ES6(ECMAScript 2015) 이후 도입된 새로운 문법과 기능들에 대해 살펴보겠습니다. 이러한 확장 문법을 통해 자바스크립트 코드를 더 간결하고 효율적으로 작성할 수 있습니다.

자바스크립트의 확장 문법

1. 화살표 함수 (Arrow Functions)

화살표 함수는 간결한 문법으로 함수를 정의할 수 있는 방법입니다. 특히 this 바인딩이 기존 함수와 다르게 동작하여 콜백 함수 내에서 유용합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 기존 함수 표현식
function sum(a, b) {
    return a + b;
}

// 화살표 함수
const sum = (a, b) => a + b;

// this 바인딩 예제
function Timer() {
    this.seconds = 0;

    setInterval(() => {
        this.seconds++;
        console.log(this.seconds);
    }, 1000);
}

const timer = new Timer();

2. 템플릿 리터럴 (Template Literals)

템플릿 리터럴은 백틱(`)을 사용하여 문자열을 정의하고, 문자열 내에 표현식을 포함할 수 있습니다. 여러 줄의 문자열도 쉽게 작성할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
const name = 'Alice';
const age = 25;

// 기존 문자열 연결
const greeting = 'Hello, my name is ' + name + ' and I am ' + age + ' years old.';

// 템플릿 리터럴
const greeting = `Hello, my name is ${name} and I am ${age} years old.`;

const multiline = `This is a string
that spans multiple
lines.`;

3. 디스트럭처링 (Destructuring)

디스트럭처링은 배열이나 객체의 값을 변수로 쉽게 할당할 수 있는 문법입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 배열 디스트럭처링
const [a, b] = [1, 2];
console.log(a); // 1
console.log(b); // 2

// 객체 디스트럭처링
const user = {
    name: 'Alice',
    age: 25
};

const { name, age } = user;
console.log(name); // Alice
console.log(age); // 25

// 함수 파라미터 디스트럭처링
function greet({ name, age }) {
    console.log(`Hello, ${name}. You are ${age} years old.`);
}

greet(user);

4. 기본 매개변수 (Default Parameters)

기본 매개변수를 사용하면 함수 호출 시 인수가 전달되지 않았을 때 기본값을 사용할 수 있습니다.

1
2
3
4
5
6
function greet(name = 'Guest') {
    console.log(`Hello, ${name}!`);
}

greet(); // Hello, Guest!
greet('Alice'); // Hello, Alice!

5. 나머지 매개변수와 전개 연산자 (Rest and Spread Operator)

나머지 매개변수는 함수의 인수를 배열로 모을 수 있으며, 전개 연산자는 배열이나 객체를 개별 요소로 분해할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 나머지 매개변수
function sum(...numbers) {
    return numbers.reduce((acc, curr) => acc + curr, 0);
}

console.log(sum(1, 2, 3)); // 6

// 전개 연산자
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2); // [1, 2, 3, 4, 5]

const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2); // { a: 1, b: 2, c: 3 }

6. 클래스 (Classes)

ES6에서는 클래스를 정의할 수 있는 문법이 도입되었습니다. 클래스를 사용하여 객체 지향 프로그래밍을 쉽게 구현할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    greet() {
        console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
    }
}

const alice = new Person('Alice', 25);
alice.greet(); // Hello, my name is Alice and I am 25 years old.

7. 모듈 (Modules)

ES6에서는 모듈 시스템이 도입되어, 코드를 모듈 단위로 분리하고 가져올 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// math.js
export function add(a, b) {
    return a + b;
}

export function subtract(a, b) {
    return a - b;
}

// main.js
import { add, subtract } from './math.js';

console.log(add(5, 3)); // 8
console.log(subtract(5, 3)); // 2

결론

자바스크립트의 확장 문법은 코드를 더욱 간결하고 효율적으로 작성할 수 있게 해줍니다. 화살표 함수, 템플릿 리터럴, 디스트럭처링, 기본 매개변수, 나머지 매개변수와 전개 연산자, 클래스, 모듈 등 다양한 문법을 잘 활용하면, 자바스크립트 개발의 생산성을 크게 높일 수 있습니다.

오늘도 제 글을 읽어주셔서 감사합니다. 다음 시간에 더 유익한 주제로 찾아뵙겠습니다.

This post is licensed under CC BY 4.0 by the author.