JavaScript

JavaScript - 자바스크립트란 무엇인가? (기본편)

인어공쭈 2024. 9. 22. 11:51

자바스크립트(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!"

 

일급 함수로 인해 가능한 것들

자바스크립트가 일급 함수를 지원하기 때문에, 다양한 프로그래밍 기법과 패턴이 가능해진다.

  1. 고차 함수 (Higher-Order Function): 고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수이다. 이로 인해 코드 재사용성을 높일 수 있고, 함수형 프로그래밍 패턴을 적용할 수 있다. 배열 메서드인 map, filter, reduce 등이 대표적인 고차 함수이다.
  2. 콜백 함수 (Callback Function): 콜백 함수는 함수의 인자로 다른 함수를 전달하여, 그 함수가 특정 시점에 실행되도록 하는 방식이다. 비동기 처리, 이벤트 처리 등에 자주 사용된다. 예를 들어, setTimeout 함수는 콜백 함수를 일정 시간이 지난 후에 실행하게 한다.
  3. 클로저(Closure): 자바스크립트의 클로저는 함수가 선언된 렉시컬 환경(Lexical Environment)을 기억하여, 해당 함수가 호출될 때 그 환경에 있는 변수를 참조할 수 있게 하는 개념이다. 이는 일급 함수의 특성 덕분에 가능하며, 상태를 유지하거나 은닉할 때 유용하다.
  4. 함수형 프로그래밍(Functional Programming): 자바스크립트는 일급 함수를 지원하기 때문에 함수형 프로그래밍을 할 수 있다. 함수형 프로그래밍은 불변성(immutability)과 순수 함수(pure function)를 강조하며, 상태 변화를 최소화하고 부작용(side effects)을 줄이는 프로그래밍 방식이다. 고차 함수와 같은 패턴은 함수형 프로그래밍에서 매우 유용하다.

 

더 깊은 내용은 다음에 아래를 참고

2024.09.22 - [JavaScript] - JavaScript - 심화편

 

JavaScript - 심화편

 

haneui.tistory.com

 

 

  1.  
반응형