프로그래밍 언어/HTML,CSS,JS

자바 스크립트에서 "=>" (화살표 기능) 의 의미

Rateye 2021. 9. 3. 10:33
728x90
반응형

 

질문 : 자바 스크립트에서 "=>"(같고 큼으로 형성된 화살표)의 의미는 무엇입니까?

>= 연산자는 이상을 의미한다는 것을 알고 있지만 일부 소스 코드에서 => 그 연산자의 의미는 무엇입니까?

코드는 다음과 같습니다.

promiseTargetFile(fpParams, aSkipPrompt, relatedURI).then(aDialogAccepted => {
    if (!aDialogAccepted)
        return;

    saveAsType = fpParams.saveAsType;
    file = fpParams.file;

    continueSave();
}).then(null, Components.utils.reportError);
답변

What It Is

이것은 화살표 기능입니다. 화살표 함수는 ECMAscript 6에서 도입 한 짧은 구문으로, 함수 표현식을 사용하는 방식과 유사하게 사용할 수 있습니다. function (foo) {...} 와 같은 표현식 대신 자주 사용할 수 있습니다. 그러나 그들은 몇 가지 중요한 차이점이 있습니다. this 자신의 값을 묶지 않습니다 (토론을 위해 아래 참조).

화살표 함수는 ECMAscript 6 사양의 일부입니다. 아직 모든 브라우저에서 지원되지는 않지만 Node v. 4.0 이상 과 2018 년 현재 사용중인 대부분의 최신 브라우저에서 부분적으로 또는 완전히 지원됩니다. (아래에 지원되는 브라우저의 일부 목록을 포함했습니다).

Mozilla 문서 에서 화살표 기능에 대한 자세한 내용을 읽을 수 있습니다 .

Mozilla 문서에서 :

화살표 함수 표현식 (뚱뚱한 화살표 함수라고도 함)은 함수 표현식에 this 값을 어휘 적으로 바인딩합니다 this , arguments , super 또는 new.target 은 바인딩하지 않음). 화살표 함수는 항상 익명입니다. 이러한 함수 식은 메서드가 아닌 함수에 가장 적합하며 생성자로 사용할 수 없습니다.

화살표 기능에서 이 기능이 작동하는 방법에 대한 참고 사항

화살표 기능의 가장 편리한 기능 중 하나는 위의 텍스트에 묻혀 있습니다.

화살표의 기능은 ... 사 전적으로 결합 this 값을 (하지 않습니다 바인드 자신 this ...)

이것이 의미하는 바는 화살표 함수가 this this 가 없다는 것입니다. 전통적인 기능은 자체에 결합 할 수있다 this 가 정의 및 호출 방법에 따라 값입니다. self = this; 와 같은 많은 체조를 요구할 수 있습니다; 등을 액세스하기 위해 또는 조작 this 다른 함수 내부에서 하나 개의 기능. 이 주제에 대한 자세한 정보 는 Mozilla 문서의 설명 및 예제를 참조하십시오.

Example Code

예 (문서에서도) :

var a = [
  "We're up all night 'til the sun",
  "We're up all night to get some",
  "We're up all night for good fun",
  "We're up all night to get lucky"
];

// These two assignments are equivalent:

// Old-school:
var a2 = a.map(function(s){ return s.length });

// ECMAscript 6 using arrow functions
var a3 = a.map( s => s.length );

// both a2 and a3 will be equal to [31, 30, 31, 31]

호환성에 대한 참고 사항

Node에서 화살표 기능을 사용할 수 있지만 브라우저 지원이 불안정합니다.

이 기능에 대한 브라우저 지원은 상당히 개선되었지만 여전히 대부분의 브라우저 기반 사용에 충분하지 않습니다. 2017 년 12 월 12 일 현재 다음 버전에서 지원됩니다.

  • Chrome (v. 45 이상)
  • Firefox (v. 22 이상)
  • Edge (v. 12+)
  • Opera (v. 32+)
  • Android 브라우저 (v. 47 이상)
  • Opera Mobile (v. 33+)
  • Android 용 Chrome (v. 47 이상)
  • Android 용 Firefox (v. 44 이상)
  • Safari (v. 10 이상)
  • iOS Safari (v. 10.2 이상)
  • 삼성 인터넷 (v. 5+)
  • Baidu 브라우저 (v. 7.12 이상)

다음에서 지원되지 않음 :

  • IE (v. 11까지)
  • Opera Mini (v. 8.0 이상)
  • Blackberry Browser (v. 10까지)
  • IE Mobile (v. 11까지)
  • Android 용 UC 브라우저 (v. 11.4까지)
  • QQ (v. 1.2까지)

CanIUse.com (제휴 없음)에서 더 많은 (및 최신) 정보를 찾을 수 있습니다.

출처 : https://stackoverflow.com/questions/24900875/whats-the-meaning-of-an-arrow-formed-from-equals-greater-than-in-javas
728x90
반응형