Published 2020. 7. 16. 20:45
728x90
반응형

hoisting(호이스팅)

실제 선언부보다먼저 끌어올려져 처리되는 것

 

함수 선언식

함수 선언식은 호이스팅 되므로 선언부보다 먼저 호출 가능함

//함수 호출
a();
//함수선언식
function a(){
    console.log("a 실행!");
}

 

 

함수 표현식

함수를 하나의 값으로 취급해 변수에 대입

함수 표현식은 호이스팅 되지 않아서 선언부보다 먼저 호출할 수 없음

let b = function(){ 
    console.log("b 실행!");
}
console.log(b);  //ƒ(){console.log("b 실행!");}
b();             //b 실행!

 

 

즉시실행함수

줄여서 IIFE(이피)라고도 함

선언과 호출을 동시에 함

//선언과 호출을 동시에 함
(function(){
    console.log("iify....");  
})();    //iify

//매개인자 전달
(function(a){
    console.log(a);
})(100); //100

 

 

화살표 함수

ES6에 새로 추가된 함수 표현식

무조건 익명함수(이름지정해서 사용못함)

생성자함수로 사용될 수 없음

함수내 사용된 this는 무조건 window객체임

객체 내에 메소드로 사용함에 제약이 있음(this가 현재 객체가 아닌 window를 가리키므로 다른 속성 사용불가)

// 매개변수가 하나인 경우, 소괄호 생략 가능
let f1 = a => {
    console.log(a*100);
}
let f2 = (a,b) => {
    console.log(a*b);
    console.log(this);  //window
    
}
f1(3);   //300
f2(3,5); //15  //Window {parent: Window, opener: null, top: Window, length: 0, frames: Window, …}

//리턴절 하나밖에 없으면 아래처럼 사용가능
let f3 = x => x*10; //중괄호 없으면 return절이라고 생각해라
console.log(f3(5)); //50

(s=>{  //매개변수 s
    console.log("화살표함수로 iife작성");
    console.log(s);
})("waaaaaaaaaaaaaaaaaaaaaaaa"); //이게 호출코드, waaaaa..는 매개인자 //(콘솔출력)화살표함수로 iife작성  //waaaaaaaaaaaaaaaaaaaaaaaa

 

반응형

'프로그래밍 > JavaScript' 카테고리의 다른 글

07.20(객체)  (0) 2020.07.20
07.17(함수 클로저)  (0) 2020.07.17
07.15(형변환)  (0) 2020.07.15
07.14(Array 메소드)  (0) 2020.07.14
07.13(Date 객체와 Date 메소드)  (0) 2020.07.13
복사했습니다!