개발

js ES6

explosion149 2024. 11. 5.

 

ES6 (ECMAScript 2015)는 JavaScript의 주요 업데이트로, 
많은 새로운 기능과 문법을 도입하였습니다.

 

 

 

변수 선언: let과 const

let: 블록 스코프를 가지며, 변수의 값을 변경할 수 있습니다.
const: 블록 스코프를 가지며, 선언 시 초기화가 필요하고 값을 변경할 수 없습니다.

 

let variable = "변경 가능";
const constant = "변경 불가능";

// variable = "변경됨"; // 가능
// constant = "변경됨"; // 오류 발생

 

템플릿 리터럴 (Template Literals)

백틱(`)을 사용하여 여러 줄 문자열과 문자열 내 변수 삽입을 쉽게 할 수 있습니다.

const name = "홍길동";
const greeting = `안녕하세요, ${name}님!`;
console.log(greeting); // "안녕하세요, 홍길동님!" 출력

 

 

화살표 함수 (Arrow Functions)

함수를 간결하게 정의할 수 있는 문법입니다. 

this 바인딩이 상위 스코프를 참조합니다.

const add = (a, b) => a + b;
console.log(add(2, 3)); // 5 출력

const square = x => x * x; // 매개변수가 하나일 경우 괄호 생략 가능

 

 

전개 연산자 (Spread Operator) 및 나머지 매개변수 (Rest Parameters)

전개 연산자: 배열이나 객체를 펼치는 데 사용됩니다.
나머지 매개변수: 함수의 인수를 배열로 묶어주는 기능입니다.

 

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

// 나머지 매개변수
const sum = (...numbers) => numbers.reduce((acc, num) => acc + num, 0);
console.log(sum(1, 2, 3, 4)); // 10 출력

 

객체 리터럴의 개선

 

객체를 정의할 때, 변수 이름과 프로퍼티 이름이 같을 경우 중복 선언을 생략할 수 있습니다.

const name = "홍길동";
const age = 30;

const person = { name, age }; // { name: "홍길동", age: 30 }
console.log(person);

 

 

모듈 (Modules)

ES6는 모듈 시스템을 도입하여 코드의 재사용성과 구조화를 개선했습니다. 

모듈은 export와 import를 사용하여 정의합니다.

// myModule.js
export const PI = 3.14;
export function add(x, y) {
    return x + y;
}

// main.js
import { PI, add } from './myModule.js';
console.log(PI); // 3.14 출력
console.log(add(2, 3)); // 5 출력

 

클래스 (Classes)

ES6에서는 객체 지향 프로그래밍을 지원하기 위해 클래스를 도입했습니다. 

클래스를 통해 객체와 메서드를 정의할 수 있습니다.

class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    greet() {
        console.log(`안녕하세요, 저는 ${this.name}입니다.`);
    }
}

const person = new Person("홍길동", 30);
person.greet(); // "안녕하세요, 저는 홍길동입니다." 출력

 

Promise

비동기 작업을 처리하기 위한 새로운 객체로, 

then(), catch() 메서드를 사용하여 비동기 작업의 결과를 처리할 수 있습니다.

const fetchData = () => {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve("데이터 로드 완료");
        }, 2000);
    });
};

fetchData()
    .then(data => console.log(data)) // "데이터 로드 완료" 출력
    .catch(error => console.error(error));

 

기타 유용한 기능

for...of 문: iterable 객체(배열 등)의 요소를 반복하는 데 사용됩니다.

const fruits = ["사과", "바나나", "오렌지"];
for (const fruit of fruits) {
    console.log(fruit); // 각 과일 출력
}

 

for...in 문: 객체의 프로퍼티를 반복하는 데 사용됩니다.

 

const person = { name: "홍길동", age: 30 };
for (const key in person) {
    console.log(`${key}: ${person[key]}`); // "name: 홍길동", "age: 30" 출력
}

 

 

'개발' 카테고리의 다른 글

js Map  (0) 2024.11.05
js 일급 객체로서의 함수  (0) 2024.11.05
js break와 continue  (0) 2024.11.05
js for문  (1) 2024.11.05
js 배열  (0) 2024.11.05

댓글

💲 추천 글