>

화살표 기능에서 괄호와 꽃 괄호를 혼용하는 것과 혼동되지 않습니다.

예를 들어

꽃 괄호 사용

const sayHello = () => { console.log('Hello') }

괄호 사용

const sayHello = () => ( console.log('Hello') )

모두 콘솔에서 동일한 출력을 제공합니다. 둘 다 같은 의미입니까? 이 질문이 바보처럼 들리면 죄송합니다.


  • 답변 # 1

    중괄호 (꽃 괄호)를 사용하면 함수 본문을 정의하므로 여러 세미콜론으로 구분 된 명령문을 그 안에 넣을 수 있습니다. 함수에서 값을 리턴하려면 return 를 명시 적으로 사용해야합니다.  진술.

    괄호를 사용하면 괄호 안에 표현식의 값을 반환하게되며 하나의 표현식 만 세미콜론없이 사용할 수 있습니다. 괄호로 여러 작업을 수행하려는 경우 쉼표 연산자를 사용할 수 있습니다.

    const doTwoThings = () => (console.log("Hello"), console.log("Goodbye"));
    console.log(doTwoThings());
    
    

    여기서 Hello 를 기록하고 있습니다 그런 다음 Goodbye 그런 다음 함수의 반환 값을 기록합니다- undefined .

    중괄호 안에서도 같은 일을 할 수 있으며 눈에 띄는 차이는 보이지 않습니다 :

    const doTwoThings = () => {console.log("Hello"), console.log("Goodbye")};
    console.log(doTwoThings());
    
    

    다시 당신이 Hello 를 기록하고 있습니다  그리고 Goodbye  콘솔에 넣으면 {} 를 사용하여 함수의 반환 값을 기록합니다.  명시적인 return 가 필요합니다  키워드이므로 undefined 입니다  함수에서 아무것도 반환하지 않기 때문입니다.

    또한 괄호중괄호를 모두 볼 수 있습니다.

    const aFunction = () => ({ foo: "bar" });
    console.log(aFunction());
    
    

    여기에 좋은 설명이 있지만 기본적으로 객체를 반환하는 함수가 있으면 중괄호 {}  는 객체를 나타내며 괄호는 포함 된 표현식 (객체)의 암시 적 리턴을 강제합니다. 개체가 만들어지면식이 평가되어 반환됩니다.

  • 답변 # 2

    "꽃 괄호"를 넣을 때 평상시처럼 여러 문장을 갖는 일반적인 함수를 정의하는 것과 같습니다. 귀하의 예에서는 console.log('Hello') 를 실행합니다.  아무것도 반환하지 않습니다. 괄호를 사용하면 단일 표현식 만 지정할 수 있으며 해당 표현식의 결과는 리턴 값이됩니다. 즉, => (bar)  기본적으로 => { return bar; } 와 동일 . 부작용에 대해서만 해당 기능을 사용하고 반환 값에 신경 쓰지 않기 때문에 두 경우 모두 동일하게 작동합니다.

  • 이전 javascript - RGB 색상 혼합 알고리즘에 16 진수 색상 추가
  • 다음 Angular 6에서 momentjs를 사용하여 날짜 시간대를 utc로 변환하는 방법