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 |