>  기사  >  웹 프론트엔드  >  JavaScript 화살표 함수 및 나머지 매개변수에 대해 알아야 할 사항

JavaScript 화살표 함수 및 나머지 매개변수에 대해 알아야 할 사항

WBOY
WBOY앞으로
2021-12-21 18:35:082152검색

이 글은 JavaScript의 화살표 함수와 나머지 매개변수에 대한 관련 지식을 제공합니다. 화살표 함수와 나머지 매개변수를 사용하는 방법을 간략하게 살펴보겠습니다.

JavaScript 화살표 함수 및 나머지 매개변수에 대해 알아야 할 사항

1. 화살표 기능이란?

화살표 함수 표현식 구문은 함수를 단순화한 형태인 함수 표현식보다 더 간결합니다.
작성 방법:

() => {};   // 可以用来写一个匿名函数

구조:

const / let 函数名 参数 => 函数体

예를 들어 화살표 함수를 사용하여 작성할 수 있는 일반 함수 표현식

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

이 있습니다:

let add = (x, y) => {
	return x + y;};

2. 화살표 함수의 약어

  • 단일 매개변수
// 对于单个参数,我们可以省略外面的圆括号let addOne = x => {
	return x + 1;}
  • 한 줄 함수 본문
// 对于单行返回函数体,可以同时省略 {} 和  returnlet add (x, y) => x + y;
  • 한 줄 객체
// 对于返回单行对象,在外面加个 ()let add (x, y) => ({
	value: x + y;});

3 화살표 함수의 기본

화살표 함수에는 이것이 없으며, 이에 따라 외부 레이어에서 이를 찾습니다. 범위 체인에.
예:

var A = 1;let fun = {
    A: 2,
    printA: () => {
        console.log(this.A);
    },
    printAA: function() {
        let print = () => {
            console.log(this.A);
        }
        print();
    }};fun.printA();  // 1fun.printAA();  // 2

this.A를 출력하는 printA를 호출합니다. 화살표 함수에는 this가 없으므로 이를 찾습니다. 외부 레이어에서는 외부 레이어가 재밌습니다. 여기서 fun.printA()는 전역 범위에서 호출되므로 A = 1이 정의되기 전에 외부 thiswindow를 가리킵니다. var를 사용하면 출력은 1입니다. printA,里面是输出 this.A,由于箭头函数没有 this,所以在外层寻找,外层是 fun。在这里,fun.printA()是在全局作用域中调用的,所以外层的 this 指向的是 window,由于之前用 var 定义了一个 A = 1,所以输出的是 1。

调用 printAA,在里面调用了 print(),输出 this.A,看 print 这个函数,是个箭头函数,他没有 this,所以找外层,它的外层是 printAA,它是由 fun 调用的,所以它的 this 指向 fun,所以输出 fun 中定义的 A,也就是 2。


4. 箭头函数不适用的场景

  1. 作为构造函数

实例化构造函数之后,它的 this 指向实例化的对像,而箭头函数没有 this,所以它不能用来做构造函数。

  1. 需要 this 指向调用对象的时候

  2. 需要使用 arguments 的时候

箭头函数中没有 arguments,可以使用剩余参数来存参数。


5. 剩余参数

5.1) 什么是剩余参数 ?

举个例子:

let add = (x, y, z, ...args) => {
	console.log(x, y, z, args);};

args 就是剩余参数。
剩余参数是个数组,它即使没有值,也是以一个空数组形式存在。
比如:

let add = (x, y, z, ...args) => {
    console.log(x, y, z, args);}add(1, 2, 3);

JavaScript 화살표 함수 및 나머지 매개변수에 대해 알아야 할 사항
x, y, z 对应参数 1, 2, 3,由于剩余参数没有值,所以空数组形式存在。

5.2) 作用

由于箭头函数没有 arguments,所以我们可以使用剩余参数替代 arguments
printAA를 호출하고 내부에서 print()를 호출하고 this.A를 출력합니다. 이 함수는 print를 참조하세요. 은 화살표 함수입니다. this가 없으므로 외부 레이어를 찾으세요. 외부 레이어는 fun에 의해 호출되는 printAA입니다. >이므로 thisfun을 가리키므로 fun에 정의된 A가 출력인 2입니다.

JavaScript 화살표 함수 및 나머지 매개변수에 대해 알아야 할 사항4. 화살표 함수를 적용할 수 없는 시나리오

    생성자로서

    생성자를 인스턴스화한 후 this는 인스턴스화된 객체를 가리키지만 화살표 함수에는 이것이 없습니다. 생성자로 사용할 수 없습니다.
    호출 객체를 가리켜야 할 때
    인수를 사용해야 할 때

    화살표 함수에는 인수가 없으므로 다음을 사용할 수 있습니다. 나머지 매개변수는 매개변수를 저장합니다.

    5. 잔차 매개변수🎜🎜5.1) 잔차 매개변수란 무엇인가요? 🎜🎜예: 🎜
    const print = (...args) => {
        console.log(args);};print(1, 2);
    🎜args는 나머지 매개변수입니다. 🎜 남은 매개변수는 값이 없더라도 빈 배열의 형태로 존재합니다. 🎜 예: 🎜
    let add = (...args) => {};
    🎜여기에 이미지 설명 삽입🎜 x , y, z는 매개변수 1, 2, 3에 해당합니다. 나머지 매개변수는 값이 없으므로 빈 배열 형태로 존재합니다. 🎜🎜5.2) 함수🎜🎜화살표 함수에는 인수가 없으므로 인수 대신 나머지 매개변수를 사용하여 실제 매개변수를 가져올 수 있습니다🎜 예: 🎜rrreee🎜 🎜🎜🎜5.3 ) 주의사항🎜🎜🎜화살표 함수에서는 매개변수가 하나만 남아 있어도 괄호는 생략할 수 없습니다🎜🎜rrreee🎜🎜나머지 매개변수는 마지막 매개변수만 가능하고 그 이후에는 다른 매개변수가 올 수 없습니다. 그렇지 않으면 오류가 보고됩니다🎜🎜🎜【 관련 권장사항: 🎜자바스크립트 학습 튜토리얼🎜🎜】🎜🎜

    위 내용은 JavaScript 화살표 함수 및 나머지 매개변수에 대해 알아야 할 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제