HTML의 요소 '내용', '속성', '스타일' 변경 가능
자바스크립트(JavaScript)는 객체(object) 기반의 스크립트 언어
(객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현 가능)
HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트로는 웹의 동작을 구현 (동적이며, 타입을 명시할 필요가 없는 인터프리터 언어)
자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버 측 프로그래밍에서도 사용 가능
현재 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장
인터프리터?
C언어와 같은 언어는 소스 파일을 작성한 후, 해당 파일을 컴파일(compile)하여 사용자가 실행할 수 있는 실행 파일(.exe)로 만들어 사용
하지만 인터프리터 언어는 이러한 컴파일 작업을 거치지 않고, 소스 코드를 바로 실행할 수 있는 언어를 의미
웹 브라우저에 포함된 자바스크립트 인터프리터가 소스 코드를 직접 해석하여 바로 실행
Java | JavaScript |
---|---|
컴파일 언어 | 인터프리터 언어 |
타입 검사 엄격 | 타입 명시 안함 |
클래스(class) 기반의 객체 지향 | 프로토타입(prototype) 기반의 객체 지향 |
예제
let x = 10; let result = x + 3;
예제
// 변수 javascript와 JavaScript는 서로 다른 두 개의 변수로 인식 let javascript = 10; let JavaScript = 20; // 변수의 선언은 let 키워드로만 할 수 있으면 Let 동작안함 Let Script = 30;
: 직접 표현되는 값 자체를 의미
예제
12 // 숫자 리터럴 true // 불리언 리터럴 '안녕' // 문자열 리터럴 "JavaScript" // 문자열 리터럴
: 변수나 함수의 이름을 작성할 때 사용하는 이름
영문자(대소문자), 숫자, 언더스코어(_) 또는 달러($)만 사용 (숫자로 시작은 불가)
예제
let firstVar = 10; // Camel function my_first_func { // Underscore let firstLocalVar = 20; // Camel }
: 미리 예약된 단어들을 키워드(keyword) 또는 예약어(reserved word)라고 함
예제
var firstVar = 10; // var는 변수의 정의 function myFirstFunc { // function은 함수의 정의 var secondVar = 20; // var는 변수의 정의 }
예제
let x = 10; // 한 줄 주석 : 코드 내에 삽입된 일종의 설명문 /* x = x + y; 여러 줄 주석 : 웹 브라우저의 동작에 영향 미치지 않음 */