javascript: 순수 함수

두 가지 규칙


  • 동일한 입력이 주어지면 항상 동일한 출력을 반환합니다.
  • 부작용이 없습니다

  • 사용: 리팩터링하기 쉽고 코드를 보다 유연하고 적응 가능하게 만듭니다.

    사례 1




    // Pure function.
    const multiplyNumbers = (x,y) => x * y;
    
    multiplyNumbers(2, 3);
    > 6
    



    // Impure function.
    let a = 4;
    const multiplyNumbers = (b) => a *= b;
    
    multiplyNumbers(3);
    console.log(a); // first time: 12
    > 12
    multiplyNumbers(3);
    console.log(a); // second time: 36
    > 36
    
    // Mutates external variable so it isn't pure.
    


    사례 2




    // Impure function.
    addNumberarr = (arr, num) => {
    arr.push(num);
    };
    const testArr = [1,2,3];
    addNumberarr(testArr, 4);
    
    console.log(testArr);
    > [1, 2, 3, 4]
    
    // Mutates input array so it isn't pure.
    



    // pure version of above.
    addNumberarr = (arr, num) => {
    return [...arr, num];
    };
    const testArr = [1,2,3];
    addNumberarr(testArr, 4);
    > [1, 2, 3, 4]
    


    JS 내장 순수 함수:

    arr.reduce()
    arr.map()
    arr.filter()
    arr.concat()
    arr.slice()
    arr.each()
    arr.every()
    ... - spread syntax 
    


    JS 내장 불순함수:

    arr.splice()
    arr.push()
    arr.sort()
    Math.random()
    


    감사,

    따르다:

    좋은 웹페이지 즐겨찾기