본문 바로가기

JavaScript

함수

1. 함수의 기본

function sum(num1, num2){
    console.log('sum() 호출!');
    return num1 + num2;
}

const result = sum(10, 3);  // sum(10, 3)에 리턴값 num1 + num2이 저장되있음 const result =sum(num1, num2)-->num1+num2
console.log(result);

2. 함수 메모리

 

const add = sum;
console.log(sum(10,3));
console.log(add(10,3));

// sum() 호출!
13
sum() 호출!
13

3. 함수 작성법(팁!)

// 조건이 맞지 않는 경우 함수 도입부분에서 함수를 미리 종료!

function print(num){
    if(num < 0){
        return;
    }
    console.log(num);
}
print(10);
print(-1);

//10

// 아무것도 나오지 않음 리턴값으로 아무것도 지정하지 않았기 때문에 함수를 끝냄.

//return(함수의 종료) 값을 전달하고 난뒤 종료 아래로 내려가지 않음 -->리턴값을 전달받을시 undefined
//else 쓸필요 없음 if문으로 거르고 난뒤에 진행.

4. 매개변수의 기본값은 undefined

function total(num1=0, num2=0){
 console.log(num1);
 console.log(num2);
 console.log('arguments: ',arguments);         //  arguments는 list와 비슷!
 console.log('arguments[1]: ',arguments[1]);                
 return num1 + num2;
}
console.log(total()); 
console.log(total(10, 3));                          //13
													//total에 10,3 값을 전달

5. 콜백 함수

// 함수 계산식을 -> 변수로 받아서 변수를 매개변수로 사용!

const calc_add = (a,b) => a + b;    //한줄짜리 자동 리턴
const calc_multiply = (a,b) => a * b; 
console.log(calc_add(10, 5));
console.log(calc_multiply(10, 5));

function calculator(num1, num2, action){        //action 이름
    if(num1 < 0 || num2 < 0){
        return;
    }
    const result = action(num1, num2);
    console.log(result);
    return result;
}

calculator(4,2,calc_add);        //함수자체를 전달! calc_add---->action calc_add 에 주소 있음
calculator(4,2,calc_multiply);      //calculator

console.log('------------------------');
function iterate(num, action){
action(num);
}

function log(num){
    for(let i=0; i<num; i++){
        console.log(i);
    }
}
function square(num){
    console.log(num** 2);
}

iterate(3, log);
iterate(3, square);

6. 원시값(단일값)과 객체값(집합처럼 묶인)의 비교

// 원시값: 값에 의한 복사 call by value

// 객체값: 참조에 의한 복사(메모리 주소) call by reference

 

function display(num){
    num = 10;
    console.log(num);
}

const value = 5;
display(value);  //5가 복사되어 display(num)으로 들어감
console.log(value);

function displayObj(obj){
    obh.age = 12;                    // X!!
    console.log(obj);
}
const dog = {name:'루시', age:13};
//  ' ' 키값
displayObj(dog);
console.log(dog);

// obj 복사
function changeAge(obj){
    return{ ...obj, age:12};    /// ...: object 생성, 값 바꿈?
}

dog2 = changeAge(dog);
console.log(dog2);

'JavaScript' 카테고리의 다른 글

object  (0) 2022.11.12
object  (0) 2022.11.10
회원가입.js  (0) 2022.11.09
폼 객체??  (0) 2022.11.08
객체~ 폼  (0) 2022.11.08