수색…


소개

노드 6이 노드의 새로운 LTS 버전이됩니다. 새로운 ES6 표준을 통해 언어에 대한 여러 가지 개선 사항을 알 수 있습니다. 소개 된 새로운 기능과 구현 방법에 대한 예제를 살펴볼 것입니다.

기본 함수 매개 변수

function addTwo(a, b = 2) {
    return a + b;
}

addTwo(3) // Returns the result 5

기본 함수 매개 변수를 추가하면 이제 인수를 선택적으로 만들 수 있으며 기본값을 원하는 값으로 설정할 수 있습니다.

나머지 매개 변수

function argumentLength(...args) {
    return args.length;
}

argumentLength(5) // returns 1
argumentLength(5, 3) //returns 2
argumentLength(5, 3, 6) //returns 3

함수의 마지막 인수 앞에 ... 함수에 전달 된 모든 인수는 배열로 읽습니다. 이 예제에서는 여러 인수를 전달하고 해당 인수에서 생성 된 배열의 길이를 가져옵니다.

스프레드 연산자

function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction(...args);

확산 구문을 사용하면 여러 인수 (함수 호출의 경우) 또는 여러 요소 (배열 리터럴의 경우) 또는 여러 변수가 예상되는 위치에서 표현식을 확장 할 수 있습니다. 나머지 매개 변수처럼 배열을 간단하게 시작합니다 ...

화살표 기능

화살표 함수는 ECMAScript 6에서 함수를 정의하는 새로운 방법입니다.

// traditional way of declaring and defining function
var sum = function(a,b)
{
    return a+b;
}

// Arrow Function
let sum = (a, b)=> a+b;

//Function defination using multiple lines 
let checkIfEven = (a) => {
    if( a % 2 == 0 )
        return true;
    else
        return false;
}

화살표 함수의 "this"

이 함수는 해당 함수를 호출하는 데 사용 인스턴스 오브젝트를 지칭하지만, 화살표 기능이 화살표 함수가 정의 된 기능이 동일하다.

다이어그램 사용법을 이해해 봅시다. 이 화살표 함수의 어휘 범위

예제 사용 이해.

var normalFn = function(){
   console.log(this) // refers to global/window object.
}

var arrowFn = () => console.log(this); // refers to window or global object as function is defined in scope of global/window object
    
var service = {

    constructorFn : function(){

        console.log(this); //  refers to service as service object used to call method.

        var nestedFn = function(){
            console.log(this); // refers window or global object because no instance object was used to call this method.
        }
        nestedFn();
    },
    
    arrowFn : function(){
        console.log(this); // refers to service as service object was used to call method.
        let fn = () => console.log(this); // refers to service object as arrow function defined in function which is called using instance object.
        fn();
    } 
}

// calling defined functions
constructorFn();
arrowFn();
service.constructorFn();
service.arrowFn();

화살표 함수에서 이것은 화살표 함수가 정의 된 함수의 범위 인 어휘 범위입니다.
첫 번째 예는, 따라서 기능을 정의하고 전통적인 방법이 글로벌 / 윈도우 객체를 의미한다.
화살표 함수 내부에서 사용되는 제 2 실시 예에서, 따라서 이는이 (Windows 또는 전역 객체 임) 정의의 범위를 말한다. 서비스 객체는 함수 호출에 사용 된 바와 같이 세 번째 예에서, 이것은 서비스 객체이다.
네 번째 예에서 arrow 함수는 범위가 service 인 함수에서 정의되고 호출되며 따라서 service 객체를 인쇄합니다.

참고 : - 전역 객체는 Node.Js에 표시되고 브라우저 객체는 windows 객체에 인쇄됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow