"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > ESnd Arrow 함수에 대한 종합 가이드

ESnd Arrow 함수에 대한 종합 가이드

2024-11-06에 게시됨
검색:512

A Comprehensive Guide to ESnd Arrow Functions

ES6 소개

ECMAScript 2015(ES6(ECMAScript 6)라고도 함)는 JavaScript에 대한 중요한 업데이트로, 코딩을 더욱 효율적이고 관리하기 쉽게 만드는 새로운 구문과 기능을 도입합니다. JavaScript는 웹 개발에 사용되는 가장 널리 사용되는 프로그래밍 언어 중 하나이며 ES6의 개선으로 기능이 크게 향상되었습니다.

이 가이드는 ES6에 도입된 중요한 기능을 다루며, 특히 강력하고 새로운 함수 작성 방식인 화살표 함수에 중점을 두고 있습니다.

ES6의 주요 기능

1. let 및 const

ES6에서는 변수를 선언하는 두 가지 새로운 방법인 let과 const를 도입했습니다.

  • let: 블록 범위 변수를 선언합니다. 즉, 변수는 선언된 블록 내에서만 사용할 수 있습니다.

     let x = 10;
     if (true) {
       let x = 2;
       console.log(x); // 2 (inside block)
     }
     console.log(x); // 10 (outside block)
    
  • const: 재할당할 수 없는 상수 변수를 선언합니다. 그러나 이것이 변수를 불변으로 만드는 것은 아닙니다. const로 선언된 객체는 여전히 속성을 변경할 수 있습니다.

     const y = 10;
     y = 5; // Error: Assignment to constant variable.
    
     const person = { name: "John", age: 30 };
     person.age = 31; // This is allowed.
    

2. 화살표 기능

ES6의 가장 많이 언급되는 기능 중 하나는 화살표 기능입니다. 함수 작성을 위한 더 짧고 간결한 구문을 제공합니다.

#### 구문 비교:

기존 함수(ES5):

   var add = function(x, y) {
     return x   y;
   };

화살표 함수(ES6):

   const add = (x, y) => x   y;

화살표 기능이 다른 점은 다음과 같습니다.

  • 더 짧은 구문: 함수 키워드를 작성할 필요가 없으며 함수에 단일 문이 있는 경우 중괄호 {}를 생략할 수 있습니다.
  • 암시적 반환: 함수에 표현식이 하나만 포함된 경우 해당 표현식의 결과가 자동으로 반환됩니다.
  • 이 바인딩 없음: 화살표 함수에는 자체 this가 없으므로 개체 메서드에 적합하지 않습니다.

한 줄 화살표 기능의 예:

   const multiply = (a, b) => a * b;
   console.log(multiply(4, 5)); // 20

화살표 함수는 매개변수 없이도 사용할 수 있습니다.

   const greet = () => "Hello, World!";
   console.log(greet()); // "Hello, World!"

한 줄 이상으로 구성된 함수의 경우 중괄호 {}가 필요하며 반환 문은 명시적이어야 합니다.

   const sum = (a, b) => {
     let result = a   b;
     return result;
   };

화살표 함수와 이것
중요한 차이점 중 하나는 이것이 Arrow Functions에서 작동하는 방식입니다. 기존 함수와 달리 Arrow 함수는 자체 this를 바인딩하지 않고 주변 컨텍스트에서 상속합니다.

   const person = {
     name: "John",
     sayName: function() {
       setTimeout(() => {
         console.log(this.name);
       }, 1000);
     }
   };
   person.sayName(); // "John"

위의 예에서 setTimeout 내부의 화살표 함수는 사람 개체를 올바르게 참조하는 sayName 메서드에서 이를 상속합니다.

3. 구조 분해 할당

구조 분해를 통해 배열이나 객체에서 값을 추출하고 이를 보다 간결한 방식으로 변수에 할당할 수 있습니다.

객체 파괴:

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

배열 파괴:

   const fruits = ["Apple", "Banana", "Orange"];
   const [first, second] = fruits;
   console.log(first);  // "Apple"
   console.log(second); // "Banana"

4. 확산 및 나머지 연산자(...)

... 연산자를 사용하여 배열을 개별 요소로 확장하거나 여러 요소를 배열로 수집할 수 있습니다.

  • 확산: 배열을 개별 요소로 확장합니다.

     const numbers = [1, 2, 3];
     const newNumbers = [...numbers, 4, 5];
     console.log(newNumbers); // [1, 2, 3, 4, 5]
    
  • Rest: 여러 인수를 배열로 수집합니다.

     function sum(...args) {
       return args.reduce((acc, curr) => acc   curr);
     }
     console.log(sum(1, 2, 3, 4)); // 10
    

5. 약속

프라미스는 JavaScript에서 비동기 작업을 처리하는 데 사용됩니다. Promise는 현재, 미래에 사용할 수 있거나 전혀 사용할 수 없는 값을 나타냅니다.

예:

   const myPromise = new Promise((resolve, reject) => {
     setTimeout(() => {
       resolve("Success!");
     }, 1000);
   });

   myPromise.then(result => {
     console.log(result); // "Success!" after 1 second
   });

이 예에서 Promise는 1초 후에 확인되고 then() 메서드가 확인된 값을 처리합니다.

6. 기본 매개변수

ES6에서는 함수 매개변수의 기본값을 설정할 수 있습니다. 매개변수가 제공되지 않거나 정의되지 않은 경우에 유용합니다.

예:

   function greet(name = "Guest") {
     return `Hello, ${name}!`;
   }
   console.log(greet());       // "Hello, Guest!"
   console.log(greet("John")); // "Hello, John!"

7. 문자열 메서드 (includes(), startWith(), endWith())

일반적인 작업을 더 쉽게 만들기 위해 새로운 메서드가 문자열에 추가되었습니다.

  • includes(): 문자열에 지정된 값이 포함되어 있는지 확인합니다.

     let str = "Hello world!";
     console.log(str.includes("world")); // true
    
  • startsWith(): 문자열이 지정된 값으로 시작하는지 확인합니다.

     console.log(str.startsWith("Hello")); // true
    
  • endsWith(): 문자열이 지정된 값으로 끝나는지 확인합니다.

     console.log(str.endsWith("!")); // true
    

8. 배열 메서드 (find(), findIndex(), from())

ES6에서는 배열 작업을 위한 새로운 방법을 도입했습니다.

  • find(): 조건을 만족하는 첫 번째 요소를 반환합니다.

     const numbers = [5, 12, 8, 130, 44];
     const found = numbers.find(num => num > 10);
     console.log(found); // 12
    
  • findIndex(): 조건을 만족하는 첫 번째 요소의 인덱스를 반환합니다.

     const index = numbers.findIndex(num => num > 10);
     console.log(index); // 1 (position of 12 in the array)
    

9. 수업

ES6에서는 JavaScript의 기존 프로토타입 기반 상속에 대한 구문적 설탕인 클래스를 JavaScript에 도입했습니다. 클래스를 사용하면 더 명확하고 이해하기 쉬운 객체 지향 프로그래밍이 가능합니다.

예:

   class Car {
     constructor(brand, year) {
       this.brand = brand;
       this.year = year;
     }

     displayInfo() {
       return `${this.brand} from ${this.year}`;
     }
   }

   const myCar = new Car("Toyota", 2020);
   console.log(myCar.displayInfo()); // "Toyota from 2020"

결론

ES6는 JavaScript를 변형하여 더욱 효율적이고 사용하기 쉽게 만들었습니다. 화살표 함수의 도입으로 함수 구문이 단순화되고, 구조 분해, 약속, 클래스확산 연산자와 같은 새로운 기능이 추가되었습니다. 를 사용하면 개발자가 더욱 깔끔하고 표현력이 풍부한 코드를 작성할 수 있습니다. 초보자이든 고급 개발자이든, 이러한 ES6 기능을 이해하는 것은 최신 JavaScript를 작성하는 데 필수적입니다.

이러한 개념을 익히면 실제 코딩 문제를 처리하고 효율적이고 확장 가능한 웹 애플리케이션을 구축할 수 있는 능력을 더 갖추게 됩니다.

GitHub에서 Arrow Functions 프로젝트에 대한 후속 조치

참고자료

  • https://www.w3schools.com/js/js_es6.asp
  • https://towardsdatascience.com/javascript-es6-iterables-and-iterators-de18b54f4d4
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements
릴리스 선언문 이 기사는 https://dev.to/tobidelly/a-comprehensive-guide-to-es6-and-arrow-functions-k13?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다. 그것
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3