> 웹 프론트엔드 > 프런트엔드 Q&A > es6 => 그게 무슨 뜻이에요?

es6 => 그게 무슨 뜻이에요?

青灯夜游
풀어 주다: 2022-10-14 17:34:52
원래의
3980명이 탐색했습니다.

es6에서 "=>"는 함수의 약어인 화살표 함수를 나타냅니다. 구문은 (매개변수)=>{함수 본문};"입니다. 화살표 함수에는 프로토타입이 없습니다. 인수, super 및 "new.target" 바인딩, 해당 값은 가장 가까운 주변 비화살표 함수에 의해 결정됩니다.

es6 => 그게 무슨 뜻이에요?

이 튜토리얼의 운영 환경: Windows 7 시스템, ECMAScript 버전 6, Dell G3 컴퓨터.

=>는 화살표 함수로, 이름에서 알 수 있듯이 화살표( =>) 함수를 정의합니다. 함수 표현식의 구문은 함수 표현식보다 간결하지만 주로 다음 측면에 중점을 두는 기존 JavaScript 함수와 약간 다릅니다. =>是箭头函数,是ES6标准中新增的一种新的函数。顾名思义,箭头函数是一种使用箭头(=>)定义函数的新语法,箭头函数表达式的语法比函数表达式更简洁,但是它与传统的JavaScript函数有些许不同,主要集中在以下方面:

  • 没有this、super、arguments和new.target绑定,其值由外围最近一层非箭头函数决定

  • 不能通过new关键字调用

  • 没有原型

  • 不可以改变this的绑定

  • 不支持arguments对象

  • 不支持重复的命名参数

  • 函数体内的this的指向始终是指向定义它所在的对象,而不会指向调用它的对象,我们知道es5中的函数是谁执行它,它就指向谁。

基础语法

(param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression
//相当于:(param1, param2, …, paramN) =>{ return expression; }
// 当只有一个参数时,圆括号是可选的:
(singleParam) => { statements }
singleParam => {statements }
// 没有参数的函数应该写成一对圆括号:
() => { statements }
로그인 후 복사

简单示例

x => x * x
로그인 후 복사

即相当于:

function (x) {
 return x * x;
}
로그인 후 복사

更短的函数示例

        var elements = [
            'Hydrogen',
            'Helium',
            'Lithium',
            'Beryllium'
        ];
        
        elements.map(function(element) { 
            return element.length; 
        }); // 返回数组:[8, 6, 7, 9]
        
        // 上面的普通函数可以改写成如下的箭头函数
        elements.map((element) => {
            return element.length;
        }); // [8, 6, 7, 9]
        
        // 当箭头函数只有一个参数时,可以省略参数的圆括号
        elements.map(element => {
        return element.length;
        }); // [8, 6, 7, 9]
        
        // 当箭头函数的函数体只有一个 `return` 语句时,可以省略 `return` 关键字和方法体的花括号
        elements.map(element => element.length); // [8, 6, 7, 9]
        
        // 在这个例子中,因为我们只需要 `length` 属性,所以可以使用参数解构
        // 需要注意的是字符串 `"length"` 是我们想要获得的属性的名称,而 `lengthFooBArX` 则只是个变量名,
        // 可以替换成任意合法的变量名
        elements.map(({ "length": lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]
로그인 후 복사

三元运算符示例

箭头函数也可以使用条件(三元)运算符:

        var simple = a => a > 15 ? 15 : a;
        simple(16); // 15
        simple(10); // 10

        let max = (a, b) => a > b ? a : b;
로그인 후 복사

不与new一起使用

箭头函数不能用作构造器,和 new一起用会抛出错误。

        var Foo = () => {};
        var foo = new Foo(); // TypeError: Foo is not a constructor
로그인 후 복사

没有prototype属性

箭头函数没有prototype属性。

        var Foo = () => {};
        console.log(Foo.prototype); // undefined
로그인 후 복사

函数体

箭头函数可以有一个“简写体”或常见的“块体”。

在一个简写体中,只需要一个表达式,并附加一个隐式的返回值。在块体中,必须使用明确的return

  • No 이것, super, 인수, new.target은 바인딩되어 있으며 그 값은 주변에서 가장 가까운 비화살표 함수에 의해 결정됩니다

  • 불가능 새 키워드를 통해 호출되었습니다
  • 프로토타입이 없습니다

  • this의 바인딩을 변경할 수 없습니다
  • 인수 객체를 지원하지 않습니다

  • es6 => 그게 무슨 뜻이에요?반복적으로 명명된 매개변수를 지원하지 않습니다

  • 함수 본문에서 이는 항상 함수를 호출하는 객체가 아니라 정의된 객체를 가리킵니다. es5는 그것이 누구인지 가리킵니다.

기본 구문

        var func = x => x * x;                  
        // 简写函数 省略return(简写体)

        var func = (x, y) => { return x + y; }; 
        //常规编写 明确的返回值(块体)
로그인 후 복사
🎜🎜간단한 예🎜🎜
        var fact = (x) => ( x==0 ?  1 : x*fact(x-1) );
        fact(5);       // 120
로그인 후 복사
🎜다음과 같습니다.🎜rrreee🎜🎜짧은 함수 예🎜🎜rrreee🎜🎜 example🎜🎜🎜Arrow 함수는 조건부(세 개의 메타) 연산자도 사용할 수 있습니다. 🎜rrreee🎜🎜는 new 🎜🎜🎜와 함께 사용할 수 없습니다. 화살표 함수는 생성자로 사용할 수 없으며 new 🎜rrreee🎜와 함께 사용하면 오류가 발생합니다. 🎜 프로토타입 속성이 없습니다. 🎜🎜🎜 화살표 함수에는 프로토타입 속성이 없습니다. 🎜rrreee🎜🎜함수 본문🎜🎜🎜 화살표 함수에는 "약식 본문" 또는 공통 "블록 본문"이 있을 수 있습니다. 🎜🎜약식 본문에는 표현식이 하나만 있습니다. 암시적 반환 값이 첨부되어 있어야 합니다. 🎜rrreee🎜🎜Arrow 함수 recursion🎜🎜rrreee🎜🎜브라우저 호환성🎜🎜🎜🎜🎜🎜[ 관련 추천: 🎜javascript 비디오 튜토리얼🎜, 🎜웹 프론트엔드🎜】🎜

위 내용은 es6 => 그게 무슨 뜻이에요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
es6
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿