카테고리 없음

8. function

박성하하 2025. 12. 14. 23:17
728x90
반응형
/**
 * function -> 함수
 */

/**
 * 2라는 숫자에 *10 /2 %3 스트링으로 변환해서
 * 반환받고싶다면?
 */

console.log((2 * 10 / 2 % 3).toString());     // 1
console.log((3 * 10 / 2 % 3).toString());     // 0

/**
 * DRY
 * D -> don't
 * R -> repeat
 * Y -> yourself
 */

function calculate (){
    console.log((2 * 10 / 2 % 3).toString());     // 1
}

// calculate();

function calculate (number){        // number = Parameter
    console.log((number * 10 / 2 % 3).toString());    
}

/**
 * 함수에서 입력받는 값에 대한 정의를 Parameter 라고한다
 *
 * 실제 입력하는 값은 argument 라고한다
 */
calculate(4);   // 4 = argument
calculate(5);   // 5 = argument

function multiply(x,y){
    console.log(x * y);
}

multiply(2,4); 8

function multiply(x , y = 10){
    console.log(x * y);
}

multiply(2,4);      // 8
multiply(2);        // 20 두 파라미터에 대해 디폴트값을 설정해 뒀기떄문

/**
 * 반환받기
 * return
 */

function multiply(x,y){
    return x * y;
}

const result1 = multiply(2,4);
console.log(result1);   // 8

const result2 = multiply(4,5);
console.log(result2);   //20


/**
 * Arrow 함수
 */

const multiply2 = (x,y) =>{
    return x * y;
}
console.log(multiply2(3,4));12

const multiply3 = (x,y) => x * y;   // muiltiply2 함수와 동일하게 작동
console.log(multiply3(3,4));        // 12


const multiply4 = (x) => x * 2;
console.log(multiply4(2));  // 4

const multiply5 = x => x * 2;
console.log(multiply5(2));  // 4 , multiply4와 동일

const multiply6 = x => y => z => `x : ${x} y: ${y} z: ${z}`;
console.log(multiply6(2)(5)(4));        //  x : 2 y: 5 z: 4

function multiply7(x){
    return function(y){
        return function(z){
            return `x : ${x} y: ${y} z: ${z}`;
        }
    }
}


console.log(multiply7(2)(5)(4));        // //  x : 2 y: 5 z: 4 , multiply6과 동일



const multiplyTwo = function(x,y){
    return x*y;
}

console.log(multiplyTwo(4,5));      // 20

const multiplyThree = function(x,y,z){
    console.log(arguments); // 파라미터로 받은값을 순서대로 받을 수 있다.
    return x * y * z;
}

console.log(multiplyThree(4,5,6));  // [Arguments] { '0': 4, '1': 5, '2': 6 } , 120

// const multiplyAll = function(...arguments){
//     return Object.values(arguments).reduce((a,b) => a * b , 1);
// }

// console.log(multiplyAll(3,4,5,6,7,8,9,10)) // 1814400


// immediately invoked function
(function(x,y){
    console.log(x*y);
})(4,5);        // 20

console.log(typeof multiply);       // function
console.log(multiply instanceof Object);        // true , 함수는  Object다
728x90
반응형