자바스크립트(JavaScript)는 웹 개발에서 가장 널리 사용되는 프로그래밍 언어로, 주로 웹 페이지의 동적인 동작을 만들기 위해 사용된다. HTML과 CSS와 함께 웹 페이지의 구성 요소로, HTML은 구조를, CSS는 스타일을 담당하고, 자바스크립트는 동작을 담당한다.
클라이언트 사이드 스크립팅
자바스크립트는 브라우저에서 실행되는 스크립팅 언어다. 즉, 웹 페이지를 로드한 클라이언트(사용자 측)에서 실행되어, 서버에 요청을 보내지 않고도 웹 페이지의 동작을 제어할 수 있다.
동적 언어
자바스크립트는 동적 타입(dynamic typing)을 가지며, 변수의 타입을 명시적으로 선언할 필요가 없다. 예를 들어, 하나의 변수는 문자열을 담을 수도 있고, 숫자를 담을 수도 있다.
let x = 10; // 숫자
x = "Hello"; // 문자열
객체 지향 프로그래밍(OOP)
자바스크립트는 객체 지향 프로그래밍을 지원한다. 함수, 배열, 객체 등 다양한 자료형과 함께 프로토타입 기반의 상속을 지원한다.
이벤트 기반 프로그래밍
자바스크립트는 사용자의 이벤트(클릭, 마우스 오버, 키보드 입력 등)에 반응할 수 있다. 이를 통해 웹 페이지에서 동적인 반응을 구현할 수 있다.
비동기 처리(Asynchronous)
자바스크립트는 비동기적으로 동작할 수 있어, 네트워크 요청, 파일 읽기, 타이머 등 시간이 오래 걸리는 작업을 실행할 때 페이지가 멈추지 않고 계속해서 다른 작업을 할 수 있다. 이를 위해 콜백 함수, Promise, async/await 등의 방법을 제공한다.
DOM(Document Object Model) 조작
자바스크립트는 DOM을 조작할 수 있다. DOM은 웹 페이지의 HTML 요소들을 트리 구조로 표현한 객체 모델로, 자바스크립트를 통해 DOM을 변경하여 페이지의 내용을 동적으로 업데이트할 수 있다.
document.getElementById("demo").innerHTML = "Hello, world!";
웹 페이지 동적 컨텐츠
자바스크립트는 HTML 문서에 동적인 변화를 주는 데 많이 사용된다. 예를 들어, 버튼 클릭 시 특정 내용이 바뀌거나, 애니메이션 효과, 모달 창 등을 구현할 수 있다.
폼 유효성 검사
사용자가 웹 페이지에서 폼을 제출할 때 자바스크립트를 사용하여 필수 항목이 제대로 입력되었는지, 데이터 형식이 맞는지 확인할 수 있다. 이를 통해 서버로의 불필요한 요청을 줄이고, 사용자 경험을 향상시킬 수 있다.
AJAX(Asynchronous JavaScript and XML)
자바스크립트를 사용하여 비동기식 HTTP 요청을 보내고, 서버와 데이터를 주고받을 수 있다. 이를 통해 페이지를 새로고침하지 않고도 데이터를 업데이트할 수 있다. 이 기술은 주로 웹 애플리케이션에서 사용된다.
게임 개발
HTML5와 자바스크립트를 이용하여 브라우저에서 실행되는 간단한 게임을 만들 수 있다. Canvas API를 사용하면 게임의 그래픽을 그리거나 애니메이션을 만들 수 있다.
서버 사이드 개발
자바스크립트는 Node.js라는 런타임 환경을 통해 서버 사이드에서도 사용될 수 있다. 이를 통해 서버와 클라이언트 모두에서 자바스크립트를 사용하여 웹 애플리케이션을 개발할 수 있다.
자바스크립트에서 변수를 선언하는 방법은 var, let, const를 사용할 수 있다.
var: 예전 방식의 변수 선언. 함수 스코프를 가짐.let: 블록 스코프를 가진 변수 선언.const: 변경할 수 없는 상수를 선언.let x = 10; // 변수를 선언하고 값 할당
const y = 20; // 변경할 수 없는 상수 선언
자바스크립트에서는 함수를 function 키워드를 사용하여 정의할 수 있다.
function greet(name) {
return "Hello, " + name;
}
console.log(greet("Alice")); // "Hello, Alice"
자바스크립트에서는 if, else if, else를 사용하여 조건문을 작성할 수 있다.
let age = 18;
if (age >= 18) {
console.log("성인");
} else {
console.log("미성년자");
}
자바스크립트에는 for, while, do...while 반복문이 있다.
for (let i = 0; i < 5; i++) {
console.log(i); // 0, 1, 2, 3, 4
}
자바스크립트에서 데이터를 저장할 때는 배열과 객체를 많이 사용한다.
let fruits = ["apple", "banana", "orange"];
console.log(fruits[1]); // "banana"
let person = {
name: "John",
age: 30
};
console.log(person.name); // "John"
자바스크립트는 비동기 처리를 지원한다. 예를 들어, setTimeout이나 setInterval을 사용하여 지연된 작업을 처리할 수 있다.
setTimeout(function() {
console.log("Hello after 2 seconds");
}, 2000); // 2초 후 실행
자바스크립트는 초기에 브라우저에서만 실행되는 간단한 스크립트 언어였지만, 현재는 웹 애플리케이션 개발뿐만 아니라 서버 사이드 개발(Node.js), 모바일 애플리케이션 개발(React Native), 게임 개발, 데스크탑 애플리케이션 개발(Electron) 등 다양한 분야에서 사용된다.
또한, ECMAScript라는 표준에 따라 지속적으로 업데이트가 이루어지고 있으며, 최신 버전에서는 비동기 처리를 위한 async/await, 모듈 시스템(import/export), 화살표 함수 등의 기능이 추가되었다.