호이스팅
끌어올린다.
변수 '선언'
함수 '선언'
- 호이스팅 전
console.log( a() );
console.log( b() );
console.log( c() );
function a() { // 함수 선언문
return 'a';
}
var b = function bb() { // 기명 함수표현식
return 'bb';
}
var c = function() { // (익명) 함수표현식
return 'c';
}
- 호이스팅 후
function a() {
return 'a';
}
var b;
var c;
console.log( a() );
console.log( b() );
console.log( c() );
b = function bb() {
return 'bb';
}
c = function() {
return 'c';
}
스코프와 실행컨텍스트
스코프 : 유효범위(변수)
실행 컨텍스트 : 실행되는 코드덩어리(추상적 개념)
스코프는 함수가 정의될 때 결정되고
실행 컨텍스트는 함수가 실행될 때 생성된다.
실행 컨텍스트에는 호이스팅, this 바인딩 등의 정보가 담긴다.
메소드
함수인데 앞에 . 이 붙어있으면 메소드라고 생각하면 된다.
var obj = {
a: 1,
b: function bb() {
console.log(this);
}
}
obj.b(); // 메소드
콜백함수
대상에게 제어권을 넘겨준다(맡긴다).
다른 함수 A의 매개변수로 콜백함수 B를 전달하면,
A가 B의 제어권을 갖게 된다.
특별한 요청(bind)이 없는 한
A에 미리정해진 방식에 따라 B를 호출한다.
// setInterval( callback, milliseconds );
setInterval(function () {
console.log('1초마다 실행될 겁니다.');
}, 1000);
// arr.forEach( callback[, thisArg])
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(index, value) {
console.log(index, value);
});
// addEventListener(type, callback[, options])
document.getElementById('a').addEventListener('click', function(x) {
console.log(this, x);
});
'Web > Javascript' 카테고리의 다른 글
CALL, APPLY, BIND 메소드 (0) | 2018.01.11 |
---|---|
THIS (0) | 2018.01.11 |
DATA TYPES (0) | 2018.01.11 |
Object.assign() (0) | 2017.03.23 |
형 변환 (0) | 2017.03.21 |