JavaScript 반복 소개

7355 단어 javascript
귀속은 함수 프로그래밍 영역의 기본 주제이다.초보 프로그래머들은 그것이 무엇인지, 그리고 어떻게 일을 하는지 이해하는 것이 매우 도전적이라는 것을 자주 발견한다.그래서 나는 가능한 한 귀속이 너에게 더욱 쉽도록 할 것이다.적어도 나는 네가 이 화제에 대한 기본적인 이해를 분명히 하기 위해 노력할 것이다.그럼 시작합시다😁.
Gif from Giphy

무엇이 귀속입니까?


만약 당신이 구글에서'귀속'을 검색한다면, 매번 "당신의 뜻은 귀속입니까?"라는 메시지를 받을 것입니다.Do you mean 링크를 클릭할 때마다 같은 내용이 다시 표시됩니다.이것이 바로 귀속의 진정한 의미이다. 한 번 또 한 번 어떤 물건을 호출하는 것이다.

컴퓨터 프로그래밍에 대해 말하자면, 귀속 함수는 어떤 퇴출 조건을 만족시킬 때까지 스스로 호출되는 함수이다.그렇지 않으면 무한 순환에 빠지거나 JavaScript에서 호출 스택이 넘쳐납니다.우리는 그것을 더욱 잘 이해하기 위해 예를 하나 봅시다.
우리는 모두 계승이 무엇인지 안다.만약 우리가 숫자 자체를 그것보다 작은 값과 곱하기를 계속한다면, 우리는 숫자의 곱하기를 얻을 것이다.
예를 들어 숫자 3의 곱셈은 3*2*1=6이다.
이것은 숫자 곱셈을 되돌려주는 함수입니다.
function factorial(r) {
    if(r <= 0) return 1;
    else return r*factorial(r-1);
}
console.log(factorial(3)); //6
우리는 매개 변수 r로 숫자를 전달합니다. 이것은 귀속 함수입니까?else 조건을 보면, 종료 조건, 즉 r<=0과 일치할 때까지 함수 자체를 호출하는 것을 발견할 수 있습니다.
순환을 사용하면 같은 효과를 얻을 수 있다고 상상할 수 있다.네가 옳다.여기는 순환을 사용하는 같은 함수입니다.
function factorial(r) {
    let factor = 1;
    for(let i = r; i > 1; i--) {
        factor *= i;
    }
    return factor;
}
console.log(factorial(3)); //6
반대로 이런 작은 함수에 대해 순환을 사용하는 것이 더 좋은 선택이 될 것이다.JavaScript에서는 일반적으로 여러 번 호출된 함수보다 순환을 실행합니다.귀속 함수의 시간 복잡도는 더욱 높아질 것이다.그러나 순환은 가치가 없는 경우가 많다.그것들은 기능을 더욱 복잡하게 한다.그리고 어떤 귀속 함수도 순환으로 실현할 수 있다.
이제 우리는 귀속 함수가 무엇인지 알게 되었다. 우리는 계속 스스로 귀속 함수를 구축할 것이다.

반복 함수 만들기


귀속 함수를 사용할 때 기억해야 할 가장 중요한 것은 종료 조건을 성명하는 것이다.그렇지 않으면, 우리의 함수는 호출 창고에 넘칠 것입니다.
우리는 어떻게 중지 조건을 성명합니까?가장 간단한 것은 우리가if문장에 넣을 수 있다는 것이다.
이 예에서, 우리가 주어진 범위의 합을 되돌려 주는 귀속 함수를 작성해야 한다고 가정하자.따라서 만약에 우리가 3을 전달한다면, 그것은 1에서 3까지의 범위의 합, 즉 1+2+3=6을 출력할 것이다.
단계 1: 함수 이름을 선언합니다.범위는 매개변수를 사용하여 지정됩니다.필요하면 화살표 함수를 마음대로 사용할 수 있습니다.
function sumRange(r){

}
2단계: 성명 중지를 선언합니다.우리는 이 함수가 언제 종료되기를 희망합니까?우리의 범위가 0일 때, 맞습니까?
function sumRange(r) {
    if(r <= 0) return 0;
}
3단계: 마술이 발생하는 논리.
우리는 여기서 무엇을 실현하고 싶습니까?범위가 0으로 바뀔 때까지 순환 중 (현재 범위 + (범위 -1) 을 실행하고 싶습니다.우리는 r에서 현재 범위를 얻었습니다. 우리는 어떻게 (범위-1)을 얻었습니까?우리는 매개 변수를 (r-1) 로 전달함으로써 이 함수를 반복적으로 호출합니다.
function sumRange(r) {
    if(r <= 0) return 0;
    return r+sumRange(r-1);
}

기능 프로세스:

  • 우선, 우리는 전달값 3을 통해 함수를 호출합니다.
  •    sumRange(3);
    
  • 상기 호출은 이 함수를 실행합니다.우선,if문장을 검사합니다.만약 그것이 가짜라는 것을 발견한다면, 그것은 계속 다른 프로그램과 함께 일할 것이다.그렇지 않으면 3 + sumRange(3-1) 의 값을 반환합니다.
  •    return 3 + sumRange(2);
    
  • 상술한 논리는 여기서도 적용된다.그 외에 이번에 우리의 범위는 2 이다.따라서 반환됩니다 2 + sumRange(2-1)
  •    return 2 + sumRange(1);
    
  • 같은 상황이 재발했다.현재 범위는 1 입니다.따라서 반환 sumRange(1-1) 이 됩니다.
  •    return 1 + sumRange(0);
    
    범위가 0으로 바뀌면 if 조건이 실행되고 0으로 되돌아옵니다.
    현재 우리의 모든 함수 호출은 하나의 값을 되돌려주었고, 모든 것이 전개되기 시작할 것이다.맨 안쪽의 함수가 먼저 되돌아옵니다.
    따라서 sumRange(0) 은 0으로 돌아갑니다.sumRange(1) 또는 1 + sumRange(0)1 + 0 = 1 또는 sumRange(2)2 + sumRange(1)2 + 1 + 0 = 3 또는sumRange(3)으로 돌아갈 것입니다. 우리는 답을 얻었습니다.
    하면, 만약, 만약...😊. 나는 당신이 귀속의 작업 원리와 귀속 함수를 어떻게 작성하는지에 대해 기본적인 이해를 가지고 있기를 바랍니다.

    좋은 웹페이지 즐겨찾기