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는 객체 타입이다 안의 내용물을 바꿀수는 있어도 객체의 타입자체를 바꿀수는 없다.
'Web > JAVASCRIPT' 카테고리의 다른 글
javascript 생성자 함수를 활용한 객체 생성 (0) | 2019.07.31 |
---|---|
javascript 잡 문법 (1) | 2019.07.30 |
javascript의 function활용에 대하여 (0) | 2019.07.30 |
javascirpt 기초를 잡자 (0) | 2019.07.29 |
node.js net module :: net으로 클라이언트 접속해보기 (0) | 2019.07.24 |
사이트의 정보
코딩하렴
으렴