자바스크립트(JavaScript)는 웹 개발에서 주로 사용되는 프로그래밍 언어로, 동적이고 상호작용이 가능한 웹 페이지를 만들기 위해 사용된다. 자바스크립트는 클라이언트 측에서 실행되는 언어로 시작했지만, 현재는 서버 측에서도 Node.js와 같은 환경에서 사용될 수 있어, 프론트엔드와 백엔드를 모두 다룰 수 있는 다재다능한 언어로 자리 잡았다.
자바스크립트는 ECMAScript 표준에 기반을 두고 있으며, 객체 지향(OOP), 함수형 프로그래밍(FP) 및 이벤트 기반 프로그래밍을 지원하는 멀티 패러다임 언어이다. 이러한 특성 덕분에 자바스크립트는 간단한 스크립트부터 대규모 애플리케이션까지 다양한 개발 환경에 적합하다.
자바스크립트는 HTML, CSS와 함께 웹의 3대 구성 요소 중 하나로, HTML은 구조를, CSS는 스타일을, 자바스크립트는 동작을 정의한다. 웹 페이지에서 DOM(Document Object Model)을 조작하고, 이벤트 처리, 비동기 처리(AJAX, fetch API 등) 등을 통해 사용자와의 상호작용을 가능하게 하는 역할을 한다.
자바스크립트는 일급 함수(First-Class Function)를 지원하는 언어이다. 일급 함수란 함수를 값처럼 취급할 수 있는 개념을 말한다. 자바스크립트에서 함수는 숫자나 문자열처럼 취급할 수 있어, 다른 변수에 할당하거나 함수의 인자로 전달할 수 있으며, 함수의 반환값으로도 사용할 수 있다.
ECMAScript(ECMA스크립트)는 자바스크립트의 표준 규격을 정의한 스크립트 언어 규격이다. 자바스크립트(JavaScript)는 ECMAScript를 구현한 언어 중 하나이다. ECMAScript는 기본적인 프로그래밍 언어의 핵심 기능을 정의하며, 자바스크립트는 이 ECMAScript 표준을 바탕으로 웹 브라우저 환경에서 사용할 수 있도록 추가적인 기능(DOM 조작, 이벤트 처리 등)을 포함한다.
일급 함수의 특징
1. 함수를 변수에 할당할 수 있다: 함수는 자바스크립트에서 값처럼 변수에 할당될 수 있다. 즉, 함수 자체가 일종의 값이므로 이를 변수에 저장하고 나중에 호출할 수 있다.
const greet = function() {
console.log("Hello!");
};
greet(); // "Hello!"
2. 함수를 다른 함수의 인자로 전달할 수 있다: 자바스크립트에서는 함수가 다른 함수의 인자로 전달될 수 있다. 이는 콜백 함수(Callback Function)와 같은 패턴을 가능하게 하며, 비동기 처리나 이벤트 처리에서 자주 사용된다.
function executeCallback(callback) {
callback();
}
executeCallback(function() {
console.log("This is a callback function!");
});
3. 함수를 반환값으로 사용할 수 있다: 함수는 다른 함수의 반환값으로 사용할 수 있다. 이 패턴은 고차 함수(Higher-Order Function)에서 자주 사용되며, 더 복잡한 로직을 단순하게 표현할 수 있게 해준다.
function createGreeting() {
return function() {
console.log("Hello from the returned function!");
};
}
const greeting = createGreeting();
greeting(); // "Hello from the returned function!"
일급 함수로 인해 가능한 것들
자바스크립트가 일급 함수를 지원하기 때문에, 다양한 프로그래밍 기법과 패턴이 가능해진다.
- 고차 함수 (Higher-Order Function): 고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수이다. 이로 인해 코드 재사용성을 높일 수 있고, 함수형 프로그래밍 패턴을 적용할 수 있다. 배열 메서드인 map, filter, reduce 등이 대표적인 고차 함수이다.
- 콜백 함수 (Callback Function): 콜백 함수는 함수의 인자로 다른 함수를 전달하여, 그 함수가 특정 시점에 실행되도록 하는 방식이다. 비동기 처리, 이벤트 처리 등에 자주 사용된다. 예를 들어, setTimeout 함수는 콜백 함수를 일정 시간이 지난 후에 실행하게 한다.
- 클로저(Closure): 자바스크립트의 클로저는 함수가 선언된 렉시컬 환경(Lexical Environment)을 기억하여, 해당 함수가 호출될 때 그 환경에 있는 변수를 참조할 수 있게 하는 개념이다. 이는 일급 함수의 특성 덕분에 가능하며, 상태를 유지하거나 은닉할 때 유용하다.
- 함수형 프로그래밍(Functional Programming): 자바스크립트는 일급 함수를 지원하기 때문에 함수형 프로그래밍을 할 수 있다. 함수형 프로그래밍은 불변성(immutability)과 순수 함수(pure function)를 강조하며, 상태 변화를 최소화하고 부작용(side effects)을 줄이는 프로그래밍 방식이다. 고차 함수와 같은 패턴은 함수형 프로그래밍에서 매우 유용하다.
더 깊은 내용은 다음에 아래를 참고
2024.09.22 - [JavaScript] - JavaScript - 심화편
JavaScript - 심화편
haneui.tistory.com
'JavaScript' 카테고리의 다른 글
JavaScript - 자바스크립트란 무엇인가? (심화편-2, 컨텍스트, 함수 등) (0) | 2024.09.22 |
---|---|
JavaScript - 자바스크립트란 무엇인가? (심화편-1 타입, 변수 등) (1) | 2024.09.22 |
JavaScript - 코어 자바스트립트 정리 (4~7장, 콜백함수,클로저,프로토타입,클래스) (0) | 2024.09.22 |
JavaScript - 코어 자바스트립트 정리 (1~3장, 데이터 타입& 실행 컨텍스트& this) (3) | 2024.09.19 |
JavaScript - 자바스크립트 메모리 관리와 객체 참조 모델 (3) | 2024.09.17 |