코딩하렴

javascript function과 관련한 잡활용

by 으렴

■ 함수의 오버로딩이 안된다.

function fun1(){
    console.log("1");
}
function fun1(a){
    console.log("2");
}
function fun1(a,b){
    console.log("3");
}                       //가장 마지막에있는것만 살아남는다. 위에잇는 함수 무시

fun1()
fun1(10)
fun1(10,20)

 함수의 매개변수에 디폴트 값을 설정할 수 있다.

function fun1(a,b){
    console.log(a,b)
}

fun1()          //undefined undefined       default call
fun1(10)        //10 undefined
fun1(10,20)     //10 20
fun1(10,20,30)  //10 20 기본적으로 잘못된 코드이지만 문법적으로 문제없는 것 처럼 보인다.

function fun2(a = 10,b,c=99){
    console.log(a,b,c)
}

fun2()          //10 undefined 99           default call
fun2(20,30,40)  //20 30 40

function fun3(f = ()=>console.log(`bye!`)) {          //f는 함수
    f()
}

fun3(()=>console.log(`hi!`))    //function 객체를 넘겨줘야댐 익명함수가 아닐 경우에는!
fun3()                          //default call

 리턴객체인지 함수인지 구별잘해라

function fun4(f){
    console.log(`받은 f는 ${typeof f}`);
}

function fun5(){
    console.log(`fun5 call`);
}
function fun6(){
    return 100
}
fun4(fun5)              //함수 코드 자체를 넘기는 것.
console.log(`-------`);
fun4(fun5())            //괄호안에 fun5를 call시키는 것 (return 값을 부름) 인수 전달이 없는 거랑 같다. 
                        //(문법적으로 문제는 없지만 해석이 달라짐)
                        //함수의 실행은 안에서부터 밖으로 빠져나간다.
console.log(`-------`);
fun4(fun6())
console.log(`-------`);
console.log(`${typeof fun6}하고 ${typeof fun6()}하고는 다르다`);

 머가 리턴되는지 잘보셈

function fun7(){
    return {}       //object 리턴
}
function fun8(){
    return fun7     //함수를 리턴하고
}
function fun9(){
    return fun7()   //함수의 리턴()를 리턴
}

console.log(`리턴을 보면 ${typeof fun8()}하고 ${typeof fun9()}는 다르다!`);

 { }객체 타입(json)일 경우 안의 값을 delete와 =로 추가 삭제 할수 있다.

const obj = {
    a:10,
    b:20,
}
console.log(
    obj
);
obj.a=30
console.log(obj);

obj.c = 30          // c속성이 추가된다. = '객체의 동적 속성추가'라고 말한다.
//편하지만 위험(오타면 어쩔낀대1!!!!!!)
console.log(obj);

delete(obj.b)

console.log(obj);   //b삭제됨

 위에보면 const obj이다 근데 왜 값이 바뀔까?

obj['a'] = 40			//됨
obj = 30				//안됨
console.log(obj);

obj는 객체 타입이다 안의 내용물을 바꿀수는 있어도 객체의 타입자체를 바꿀수는 없다.

 

사이트의 정보

코딩하렴

으렴

활동하기