FRONTMANFRONTMAN
  • 태그
  • 방명록
  • 글쓰기
  • 관리자
  • HOME
  • 태그
  • 방명록
JavaScript ES6 주요 문법 (let, const, arrow function)
hahekaku
JavaScript ES6 주요 문법 (let, const, arrow function)Language/JavaScript2023. 10. 14. 01:06@hahekaku
Table of Contents

ECMAScript 6(ES6)은 자바스크립트의 주요 업데이트 중 하나로, 프로그래머들이 더 쉽고 간결하게 코드를 작성할 수 있도록 다양한 새로운 기능과 문법을 도입했습니다. 이 글에서는 ES6의 주요 문법과 기능을 설명하고, 이를 실제 예제와 함께 살펴봅니다.

let과 const 키워드

let과 const는 변수를 선언하는 새로운 방식으로, 기존의 var보다 더 안전하고 예측 가능한 방식으로 작동합니다.

  • let: 블록 스코프(block scope)를 가지며, 재할당이 가능합니다.
  • const: 블록 스코프를 가지며, 선언과 동시에 초기화해야 하고, 재할당이 불가능합니다.

예제

// let 사용
let score = 100;
if (true) {
  let score = 50; // 블록 스코프
  console.log(score); // 50
}
console.log(score); // 100

// const 사용
const userName = '홍길동';
console.log(userName); // 홍길동

// userName = '이몽룡'; // TypeError: Assignment to constant variable.

화살표 함수(arrow function)

화살표 함수는 더 짧은 문법으로 함수를 정의하며, 자신만의 this 값을 가지지 않는 것이 특징입니다.

예제

// 일반 함수
const add = function (a, b) {
  return a + b;
};

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

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

템플릿 리터럴(template literal)

템플릿 리터럴은 문자열을 더 간단하고 가독성 있게 작성할 수 있도록 돕습니다. 백틱(`)을 사용하며, ${expression}으로 변수를 삽입할 수 있습니다.

예제

const user = '홍길동';
const age = 25;

const message = `안녕하세요, 제 이름은 ${user}이고, 나이는 ${age}살입니다.`;
console.log(message);
// 출력: 안녕하세요, 제 이름은 홍길동이고, 나이는 25살입니다.

디스트럭처링 할당(destructuring assignment)

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

예제

// 배열 디스트럭처링
const fruits = ['사과', '바나나', '포도'];
const [first, second] = fruits;

console.log(first); // 사과
console.log(second); // 바나나

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

console.log(name); // 홍길동
console.log(age); // 25

클래스(class)

ES6에서 클래스는 class 키워드를 통해 정의할 수 있습니다. 이는 프로토타입 기반 객체지향 프로그래밍을 더 명확하고 간결하게 표현합니다.

예제

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

  introduce() {
    console.log(`안녕하세요, 제 이름은 ${this.name}이고, 나이는 ${this.age}살입니다.`);
  }
}

const person1 = new Person('홍길동', 25);
person1.introduce();
// 출력: 안녕하세요, 제 이름은 홍길동이고, 나이는 25살입니다.

모듈(module)

ES6 모듈은 코드의 재사용성을 높이고, 의존성을 관리하는 데 유용합니다. export와 import 키워드를 사용합니다.

예제

math.js

export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;

main.js

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

console.log(add(10, 5)); // 15
console.log(subtract(10, 5)); // 5

프로미스(Promise)

Promise는 비동기 작업의 처리 결과를 다루는 객체입니다. 주로 then과 catch 메서드를 사용합니다.

예제

const fetchUserData = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('사용자 데이터');
    }, 1000);
  });
};

fetchUserData()
  .then((data) => {
    console.log(data); // 사용자 데이터
  })
  .catch((error) => {
    console.error(error);
  });

결론

ES6는 자바스크립트 개발 경험을 대폭 개선하는 많은 기능을 도입했습니다. 이 글에서 소개한 주요 문법은 ES6의 핵심 중 일부에 불과합니다. 실무에서 이를 적극적으로 활용하여 더 효율적이고 가독성 높은 코드를 작성해 보세요.

 

'Language > JavaScript' 카테고리의 다른 글

NPM(Node Package Manager)와 라이브러리 설치법  (0) 2023.10.14
JavaScript 모듈이란? (export, import)  (0) 2023.10.14
JavaScript의 this 이해하기  (0) 2023.10.14
스코프(Scope)와 호이스팅(Hoisting)  (0) 2023.10.13
JavaScript의 클로저(Closure)  (0) 2023.10.13
Language/JavaScript 추천 글
more
  • NPM(Node Package Manager)와 라이브러리 설치법
    NPM(Node Package Manager)와 라이브러리 설치법2023.10.14
  • JavaScript 모듈이란? (export, import)
    JavaScript 모듈이란? (export, import)2023.10.14
  • JavaScript의 this 이해하기
    JavaScript의 this 이해하기2023.10.14
  • 스코프(Scope)와 호이스팅(Hoisting)
    스코프(Scope)와 호이스팅(Hoisting)2023.10.13
FRONTMAN

검색

250x250

방문자 수

Total
Today
Yesterday

카테고리

  • 분류 전체보기 (54)
    • Language (48)
      • JavaScript (15)
      • TypeScript (14)
      • Python (14)
      • Dart (5)
      • Java (0)
    • FE (6)
      • WEB (4)
      • React (0)
      • Flutter (1)
    • CS (0)
      • Algorithm (0)
      • Network (0)
    • DevOps (0)

공지사항

  • 전체보기

최근 글

인기 글

태그

  • tuple
  • 타입스크립트
  • 파이썬
  • Type
  • Python
  • 리스트
  • frontend
  • function
  • js
  • npm
  • DART
  • async
  • inline frame
  • typeScript
  • Object
  • list
  • CLASS
  • JavaScript
  • Interface
  • 타입
  • Modules
  • OOP
  • export
  • nodejs
  • 웹
  • await
  • Flutter
  • 자바스크립트
  • Import
  • web

최근 댓글

FRONTMAN :: hahekaku
CopyrightBluemivDesigned byBluemiv

티스토리툴바