콜백 함수 개발자는 단지 함수를 등록하기만 하고, 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출되는 함수를 말한다. 또한, 특정 함수의 인자로 넘겨서, 코드 내부에서 호출되는 함수 또한 콜백 함수가 될 수 있다. 대표적인 콜백 함수의 사용 예가 자바스크립트에서의 이벤트 핸들러 처리이다. 웹 페이지가 로드되거나 키보드가 입력되는 등의 DOM 이벤트가 발생할 경우, 브라우저는 정의된 DOM 이벤트에 해당하는 이벤트 핸들러를 실행시킨다. 웹 페이지가 로딩될 때 경고창에 메시지가 뜨게 되는 코드 즉시 실행 함수 함수를 정의함과 동시에 바로 실행하는 함수를 즉시 실행 함수(immediate functions)라고 한다. 함수가 선언되자마자 실행되게 만든 즉시 실행 함수의 경우, 같은 함수를 다..
함수 객체 자바스크립트에서는 함수도 객체다. 즉, 함수의 기본 기능인 코드 실행뿐만 아니라, 함수 자체가 일반 객체처럼 프로퍼티들을 가질 수 있다는 것이다. // 함수 선언 방식으로 add() 함수 정의 function add(x, y) { return x + y; } // add() 함수 객체에 result, status프로퍼티 추가 add.result = add(3,2); add.status = 'OK'; console.log(add.result); // 5 console.log(add.status); // OK 위 예제 코드는 add() 함수로 일반 객체처럼 result와 status 프로퍼티를 추가한 것이다. 자바스크립에서 함수는 값으로 취급된다. 자바스크립트의 함수의 동작 리터럴에 의해 생성 변..
함수 자바스크립트에서 가장 중요한 개념 1순위는 함수! 함수를 생성하는 방법 3가지 1. 함수 선언문(function statement) 2. 함수 표현식(function expression) 3. Function() 생성자 함수 함수 리터럴 자바스크립트에서는 함수도 일반 객체처럼 값으로 취급된다. 때문에 객체 리터럴 방식으로 일반 객체를 생성할 수 있는 것처럼, 자바스크립트에서는 함수 리터럴을 이용해 함수를 생성할 수 있다. 함수 선언문이나 함수 표현식 방법 모두 이런 함수 리터럴 방식으로 함수를 생성한다. // 함수 리터럴을 통한 add() 함수 정의 function add(x, y) { return x + y; } 함수 리터럴을 구성하는 네 가지 1. function 키워드 : 자바스크립트 함수 리..
프로토타입 자바스크립트의 모든 객체는 자신의 부모 역할을 하는 객체와 연결되어 있다. 이것은 마치 객체지향의 상속 개념과 같이 부모 객체의 프로퍼티를 마치 자신의 것처럼 쓸 수 있는 것 같은 특징이 있다. 자바스크립트에서는 이러한 부모 객체를 프로토타입 객체(프로토타입)이라고 부른다. // 객체 생성 및 출력 var foo = { name: 'foo', age: 30 }; console.log(foo.toString()); // [object Object] console.dir(foo); // Object 앞 예제에서 생성한 foo 객체는 toString() 메서드가 없으므로 에러가 발생해야 하지만, 정상적으로 결과가 출력된다. 그 이유는 foo 객체의 프로토타입에 toString() 메서드가 이미 정의..
자바스크립트 참조 타입(객체 타입) 자바스크립트에서 숫자, 문자열, 불린값, null, undefined 같은 기본 타입을 제외한 모든 값은 객체다. 따라서 배열, 함수, 정규표현식 등도 모두 결국 자바스크립트 객체로 표현된다. 자바스크립트에서 객체는 단순히 '이름(key):값(value)' 형태의 프로퍼티들을 저장하는 컨테이너로서, 컴퓨터 과학 분야에서 해시(Hash)라는 자료구조와 상당히 유사하다. 자바스크립트에서 기본 타입은 하나의 값만을 가지는 데 비해, 참조 타입인 객체는 여러 개의 프로퍼티들을 포함할 수 있으며, 이러한 객체의 프로퍼티는 기본 타입의 값을 포함하거나, 다른 객체를 가르킬 수도 있다. 이러한 프로퍼티의 성질에 따라 객체의 프로퍼티는 함수로 포함할 수 있으며, 자바스크립트에서는 이..
자바스크립트 기본 타입 자바스크립트에서 기본 타입은 숫자, 문자열, 불린 값을 비롯해 null과 undefined라는 타입이 있다. 자바스크립트는 느슨한 타입 체크 언어다. 자바스크립트는 변수를 선언할 때 타입을 미리 정하지 않고, var라는 한 가지 키워드로만 변수를 선언한다. 이렇게 선언된 변수에는 어떤 타입의 데이터라도 저장하는 것이 가능하다. 따라서 자바스크립트는 변수에 어떤 형태의 데이터를 저장하느냐에 따라 해당 변수의 타입이 결정된다. // 숫자 타입 var intNum = 10; var floatNum = 0.1; // 문자열 타입 var singleQuoteStr = 'single quote string'; var doubleQuoteStr = "double quote string"; va..