1. 자바스크립트(JavaScript)
1. 키워드
- 자바스크립트(JavaScript)
2. 자바스크립트 기초
1) 자바스크립트란?
- 자바스크립트는 객체(Object) 기반의 스크립트 언어이다.
- HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트론느 웹의 동작을 구현할 수 있다.
- 자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버측 프로그래밍에서도 사용할 수 있다.
- 현재 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있다.
2) 자바스크립트의 특징
자바스크립트가 가지고 있는 언어적 특징은 다음과 같다.
1] 자바스크립트는 객체 기반의 스크립트 언어이다.
2] 자바스크립트는 동적이며, 타입을 명시할 필요가 없는 인터프리터 언어이다.
3] 자바스크립트는 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있다.
Note
- C와 같은 언어는 소스 파일을 작성한 후, 해당 파일을 컴파일(Compile)하여 사용자가 실행할 수 있는 실행 파일(
.exe
)로 만들어 사용한다. - 하지만 인터프리터 언어는 이러한 컴파일 작업을 거치지 않고, 소스 코드를 바로 실행할 수 있는 언어를 의미한다.
- 자바스크립트는 웹 브라우저에 포함된 자바스크립트 인터프리터가 소스 코드를 직접 해석하여 바로 실행해 준다.
3) 자바와 자바스크립트
- 자바와 자바스크립트는 그 이름만 놓고 보면 서로 관련이 있는 언어로 생각되기 쉽다.
- 하지만 두 언어는 서로 직접적인 관련은 없으며, 비슷한 점보다는 다른 점이 훨씬 많다.
- 문법상 비슷한 부분은 두 언어의 문법이 모두 C를 기반으로 만들어졌기 때문이다.
자바 | 자바스크립트 |
---|---|
컴파일 언어 | 인터프리터 언어 |
타입 검사를 엄격하게 함. | 타입을 명시하지 않음. |
클래스(Class) 기반의 객체 지향 언어 | 프로토타입(Prototype) 기반의 객체 지향 언어 |
3. 자바스크립트 문법
1) 프로그램(Program)이란?
- 프로그램은 컴퓨터가 실행할 수 있는 명령(Instruction)으로 이루어진다.
- 컴퓨터 프로그래밍에서 컴퓨터가 실행할 수 있는 명령들을 실행문(Statement)이라고 한다.
- 즉, 프로그램이란 특정 결과를 얻기 위해서 컴퓨터에 의해 실행되는 실행문의 집합이라고 할 수 있다.
2) 자바스크립트 문법
- 자바스크립트의 실행문은
;
(세미콜론)으로 구분된다.
- 자바스크립트는 대소문자를 구분한다.
- 자바스크립트에서 변수나 함수의 이름, 예약어 등을 작성하거나 사용할 때에는 대소문자를 정확히 구분해서 사용해야 한다.
var javascript = 10; // 변수 javascript와 JavaScript는 서로 다른 두 개의 변수로 인식됨.
var JavaScript = 20;
Var Script = 30; // 변수의 선언은 var 키워드로만 할 수 있으며 Var는 동작하지 않음.
3) 리터럴(Literal)
- 리터럴은 직접 표현되는 값 그 자체를 의미한다.
- 다음 예제에서 등장하는 값들은 모두 리터럴이다.
4) 식별자(Identifier)
- 식별자는 변수나 함수의 이름을 작성할 때 사용하는 이름을 의미한다.
- 자바스크립트에서 식별자는 영문자(대소문자), 숫자,
_
(언더스코어) 또는$
(달러)만을 사용할 수 있다.
5) 식별자 작성 방식
- 자바스크립트에서는 식별자를 작성할 때 다음과 같은 작성 방식을 사용할 수 있다.
1] Camel Case 방식
2] Underscore Case 방식
- Camel Case 방식이란 식별자가 여러 단어로 이루어질 경우에 첫 번째 단어는 모두 소문자로 작성하고, 그다음 단어부터는 첫 문자만 대문자로 작성하는 방식이다.
- Underscore Case 방식은 식별자를 이루는 단어들을 소문자로만 작성하고, 그 단어들은
_
로 연결하는 방식이다.
- 자바스크립트에서는 식별자를 작성할 때 관행적으로 Camel Case 방식을 많이 사용한다.
var firstVar = 10; // Camel Case 방식
function my_first_func() {
// Underscore Case 방식
var firstLocalVar = 20; // Camel Case 방식
}
Note
- 자바스크립트에서
-
(하이픈)은 뺄셈을 위해 예약된 키워드이므로, 식별자를 작성할 때는 사용할 수 없다.
6) 키워드(Keyword)
- 자바스크립트에서는 몇몇 단어들을 특별한 용도로 사용하기 위해 미리 예약하고 있다.
- 이렇게 미리 예약된 단어들을 키워드 또는 예약어(Reserved Word)라고 한다.
- 이러한 키워드들은 프로그램 내에서 식별자로 사용할 수 없다.
var firstVar = 10; // var는 변수의 정의를 위해 예약된 키워드이다.
function myFirstFunc() {
// function은 함수의 정의를 위해 예약된 키워드이다.
var secondVar = 20; // var는 변수의 정의를 위해 예약된 키워드이다.
}
7) 주석(Comment)
- 주석이란 코드 내에 삽입된 일종의 설명문이다.
- 주석은 작성자나 다른 개발자가 나중에 코드를 수정할 때 참고할 수 있으며, 웹 페이지 개발 시 디버깅에도 사용된다.
- 이러한 주석은 자바스크립트 코드의 어느 부분에라도 작성할 수 있으며, 웹 브라우저의 동작에는 전혀 영향을 미치지 않는다.
- 자바스크립트 주석은 다음과 같은 두 가지 형식을 지원한다.
var x = 10;
// var y = 20; 한 줄의 주석문: 이 부분은 실행되지 않을 거싱다.
/*
x = x + y;
여러 줄의 주석문: 이 부분 또한 실행되지 않을 것이다.
*/
document.getElementById("text").innerHTML = x;
- 다음 예제는 자바스크립트에서 여러 줄 주석 안에 또 다른 주석을 삽입하는 예제이다.
- 하지만 다음 예제처럼 여러 줄 주석 내부에 또 다른 여러 줄 주석을 삽입할 수는 없다.
- 위의 예제처럼 여러 줄 주석 안에 또 다른 여러 줄 주석을 삽입하게 되면, 삽입한 주석의 종료를 알려주는 기호(
*/
)를 첫 번째 주석이 자신의 종료를 알려주는 기호(*/
)로 인식하게 된다. - 따라서 위의 예제에서 세 번째 라인은 주석으로 정상 인식되지 않으며,
Uncaught SyntaxError
가 발생하여 실행 중이던 스크립트는 중지될 것이다. - 그러므로 자바스크립트에서 여러 줄 주석은 절대로 중첩해서 사용해서는 안 된다.
4. 자바스크립트 출력
- 자바스크립트는 여러 방법을 통해 결과물을 HTML 페이지에 출력할 수 있다.
- 자바스크립트에서 사용할 수 있는 출력 방법은 다음과 같다.
1] window.alert()
메서드
2] HTML DOM 요소를 이용한 innerHTML
프로퍼티
3] document.write()
메서드
4] console.log()
메서드
1) window.alert()
메서드
- 자바스크립트에서 가장 간단하게 데이터를 출력할 수 있는 방법은
window.alert()
메서드를 이용하는 것이다. window.alert()
메서드는 브라우저와는 별도의 대화 상자를 띄워 사용자에게 데이터를 전달해 준다.
2) HTML DOM 요소를 이용한 innerHTML
프로퍼티
- 실제 자바스크립트 코드에서 출력을 위해 가장 많이 사용되는 방법은 HTML DOM 요소를 이용한
innerHTML
프로퍼티를 이용하는 방법이다. - 우선
document
객체의getElementById()
나getElementsByTagName()
등의 메서드를 사용하여 HTML 요소를 선택한다. - 그리고서
innerHTML
프로퍼티를 이용하면 선택된 HTML 요소의 내용(Content)이나 속성(Attribute)값 등을 손쉽게 변경할 수 있다.
3) document.write()
메서드
document.write()
메서드는 웹 페이지가 로딩될 때 실행되면, 웹 페이지에 가장 먼저 데이터를 출력한다.- 따라서
document.write()
메서드는 대부분 테스트나 디버깅을 위해 사용된다.
- 하지만 웹 페이지의 모든 내용이 로딩된 후에
document.write()
메서드가 실행되면, 웹 페이지 내에 먼저 로딩된 모든 데이터를 지우고 자신의 데이터를 출력하게 된다. - 따라서
document.write()
메서드를 테스트 이외의 용도로 사용할 때에는 충분히 주의해서 사용해야 한다.
4) console.log()
메서드
console.log()
메서드는 웹 브라우저의 콘솔을 통해 데이터를 출력해 준다.
- 대부분의 주요 웹 브라우저에서는
F12
를 누른 후, 메뉴에서 콘솔을 클릭하면 콘솔 화면을 사용할 수 있다. - 이러한 콘솔 화면을 통한 데이터의 출력은 좀 더 자세한 사항까지 출력되므로, 디버깅하는 데 많은 도움을 준다.
5. 자바스크립트 적용
- HTML 문서에 자바스크립트 코드를 적용하는 방법에는 다음과 같은 방법이 있다.
1] 내부 자바스크립트 코드로 적용
2] 외부 자바스크립트 파일로 적용
1) 내부 자바스크립트 코드
- 자바스크립트 코드는
<script>
태그를 사용하여 HTML 문서 안에 삽입할 수 있다.
- 이렇게 삽입된 자바스크립트 코드는 HTML 문서의
<head>
태그나<body>
태그, 또는 양쪽 모두에 위치할 수 있다.
- 다음 예제는 HTML 문서의
<head>
태그에 자바스크립트 코드를 삽입한 예제이다.
<head>
<meta charset="UTF-8" />
<title>JavaScript Apply</title>
<script>
function printDate() {
document.getElementById("date").innerHTML = Date();
}
</script>
</head>
- 다음 예제는 HTML 문서의
<body>
태그에 자바스크립트 코드를 삽입한 예제이다.
<body>
<p>
자바스크립트를 이용하면 현재 날짜와 시간 정보에도 손쉽게 접근할 수 있어요!
</p>
<button onclick="printDate()">현재 날짜와 시간 표시하기!</button>
<p id="date"></p>
<script>
function printDate() {
document.getElementById("date").innerHTML = Date();
</script>
</body>
- 위의 두 예제에서 살펴볼 수 있듯이 자바스크립트 코드를
<head>
태그에 삽입하나<body>
태그에 삽입하나 동작상의 차이는 없다.
2) 외부 자바스크립트 파일
- 자바스크립트 코드는 HTML 문서의 내부뿐만 아니라 외부 파일로 생성하여 삽입할 수도 있다.
- 외부에 작성된 자바스크립트 파일은
.js
확장자를 사용하여 저장한다. - 해당 자바스크립트 파일을 적용하고 싶은 모든 웹 페이지에
<script>
태그를 사용해 외부 자바스크립트 파일을 포함하면 된다.
<head>
<meta charset="UTF-8" />
<title>JavaScript Apply</title>
<script src="/examples/media/example.js"></script>
</head>
- 외부 자바스크립트 파일을 사용하면 웹의 내용을 담당하는 HTML 코드로부터 웹의 동작을 구현하는 자바스크립트 코드를 분리할 수 있다.
- 이렇게 하면 HTML 코드와 자바스크립트 코드를 각각 읽기도 편해지고, 유지 보수도 쉬워진다.
- 또한, 외부 자바스크립트 파일은 웹 브라우저가 미리 읽어 올 수 있어 웹 페이지의 로딩 속도 또한 빨라진다.