JavaScript

SEAN·2025년 4월 28일

📚 자바스크립트 탄생 배경

  • 초기 웹은 정적 HTML만 지원
  • 사용자와 상호작용 가능한 동적 웹 필요성 등장
  • 1995년 브랜든 아이크가 Netscape에서 Mocha 개발 → LiveScript → JavaScript로 명칭 변경

🛠️ 자바스크립트 표준화 - ECMAScript

  • 브라우저마다 JavaScript 구현이 달라 ECMAScript(ECMA-262)로 표준화
  • 2015년 발표된 ES6 이후 빠른 발전

💬 자바스크립트란?

  • 웹 페이지에 동작(인터랙티브 기능)을 추가하는 프로그래밍 언어
  • 브라우저 뿐 아니라 Node.js로 서버에서도 사용 가능
  • Java와 구문은 유사하지만 별개의 언어

⚙️ 브라우저 엔진

  • HTML 렌더링 + JavaScript 실행을 담당
  • 주요 JavaScript 엔진
    • Chrome: V8
    • Firefox: SpiderMonkey
    • Safari: JavaScriptCore

🧩 기본 문법

  • <script></script> 태그 안에서 작성
  • <script src="파일.js"></script>로 외부 스크립트 불러오기

주석

// 한 줄 주석
/* 여러 줄 주석 */

📦 변수 (var, let, const)

구분재선언재할당스코프
var가능가능함수 스코프
let불가가능블록 스코프
const불가불가블록 스코프 (선언과 동시에 초기화)

undefined: 값이 아직 할당되지 않은 변수의 초기 상태


🧠 데이터 타입

기본 타입 (Primitive)

  • String

  • Number

  • Boolean

  • null

  • undefined

  • Symbol (ES6 추가)

객체 타입 (Reference)

  • Object (Array, Function 포함)

typeof 연산자

typeof 123      // "number"
typeof "abc"    // "string"
typeof null     // "object" (버그, 설계 실수)
typeof undefined // "undefined"

➕ 연산자

  • 산술: +, -, *, /, %, **

  • 대입: =, +=, -=, *=, /=

  • 비교: ===, !==

  • 증감: ++, --

🔁 제어문

조건문

if (조건) {...}
else if (조건) {...}
else {...}

switch () {
  case: break;
  default: break;
}

반복문

for (let i = 0; i < 5; i++) {...}
while (조건) {...}
do { ... } while (조건);

for (let item of 배열) {...}  // 값 순회
for (let key in 객체) {...}    // 키 순회

📑 배열 (Array)

  • 배열 생성
let arr = [1, 2, 3];
let arr2 = new Array(3);
  • 주요 메서드
    • .push(), .pop()
    • .shift(), .unshift()
    • .splice(), .slice()
    • .join(), .reverse(), .concat()

🏗️ 객체 (Object)

  • Key-Value 쌍의 집합

  • 생성 방법

let obj = {
  key: value,
  key2: value2
};

let obj2 = new Object();
obj2.key = value;
  • 프로퍼티 추가/수정/삭제
obj.newKey = '새로운 값';   // 추가
obj.key = '수정된 값';      // 수정
delete obj.key2;            // 삭제
  • this 키워드
    • 함수 내 this는 호출한 객체를 가리킴

✅ 요약 정리

  • 자바스크립트는 웹에 동적 기능을 추가하는 대표적 언어
  • ECMAScript 표준을 기반으로 다양한 브라우저에서 사용
  • var, let, const로 변수 선언, 각각의 스코프와 재할당 여부 다름
  • 기본 타입(문자열, 숫자, 불리언 등)과 참조 타입(객체, 배열) 존재
  • 제어문, 반복문, 배열, 객체 다루는 법은 Java와 유사
  • ES6 이후 템플릿 리터럴, Symbol, const, let 등이 추가됨
profile
성장하는 BE 개발자 입니다.

0개의 댓글