본문 바로가기

[JavaScript] 자바스크립트란?

액트 2020. 4. 27.
반응형

[Javascript] 자바스크립트란?


자바스크립트(JavaScript)란?

자바스크립트(JavaScript)는 객체(object) 기반의 스크립트 언어입니다.

HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트로는 웹의 동작을 구현할 수 있습니다.

자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버 측 프로그래밍에서도 사용할 수 있습니다.

현재 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있습니다.

 

자바스크립트의 특징

자바스크립트가 가지고 있는 언어적 특징은 다음과 같습니다.

  1. 자바스크립트는 객체 기반의 스크립트 언어입니다.
  2. 자바스크립트는 동적이며, 타입을 명시할 필요가 없는 인터프리터 언어입니다.
  3. 자바스크립트는 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있습니다.

※ 인터프리터 언어란?

C언어와 같은 언어는 소스 파일을 작성한 후, 해당 파일을 컴파일(compile)하여 사용자가 실행할 수 있는 실행 파일(.exe)로 만들어 사용합니다. 하지만 인터프리터 언어는 이러한 컴파일 작업을 거치지 않고, 소스 코드를 바로 실행할 수 있는 언어를 의미합니다. 자바스크립트는 웹 브라우저에 포함된 자바스크립트 인터프리터가 소스 코드를 직접 해석하여 바로 실행해 줍니다.


자바와 자바스크립트

자바와 자바스크립트는 그 이름만 놓고 보면 서로 관련이 있는 언어로 생각되기 쉽습니다.

하지만 두 언어는 서로 직접적인 관련은 없으며, 비슷한 점보다는 다른 점이 훨씬 많습니다.

문법상 비슷한 부분은 두 언어의 문법이 모두 C언어를 기반으로 만들어졌기 때문입니다.

자바 자바스크립트
컴파일 언어 인터프리터 언어
타입 검사를 엄격하게 함 타입을 명시하지 않음
클래스(clss) 기반의 객체 지향 언어 프로토타입(prototype) 기반의 객체 지향 언어

 

자바스크립트 문법

자바스크립트의 실행문은 세미콜론(;)으로 구분됩니다.

var x = 10;

var result = x + 3;

자바스크립트는 대소문자를 구분합니다.

자바스크립트에서 변수나 함수의 이름, 예약어 등을 작성하거나 사용할 때에는 대소문자를 정확히 구분해서 사용해야 합니다.

var javascript = 10; // 변수 javascript와 JavaScript는 서로 다른 두 개의 변수로 인식됨.

var JavaScript = 20;

Var Script = 30; // 변수의 선언은 var 키워드로만 할 수 있으면 Var는 동작하지 않음.

 

리터럴(literal)

리터럴은 직접 표현되는 값 그 자체를 의미합니다.

다음 예제에서 등장하는 값들은 모두 리터럴입니다.

12            // 숫자 리터럴

"JavaScript"  // 문자열 리터럴

'안녕하세요'  // 문자열 리터럴

true          // 불리언 리터럴

 

식별자(identifier)

식별자는 변수나 함수의 이름을 작성할 때 사용하는 이름을 의미합니다.

자바스크립트에서 식별자는 영문자(대소문자), 숫자, 언더스코어(_) 또는 달러($)만을 사용할 수 있습니다.

자바스크립트에서 식별자는 숫자와 식별자의 구별을 빠르게 할 수 있도록 숫자로는 시작할 수 없습니다.

 

식별자 작성 방식

자바스크립트에서는 식별자를 작성할 때 다음과 같은 작성 방식을 사용할 수 있습니다.

  1.  Camel Case 방식
  2.  Underscore Case 방식

1. Camel Case 방식이란

식별자가 여러 단어로 이루어질 경우에 첫 번째 단어는 모두 소문자로 작성하고, 그다음 단어부터는 첫 문자만 대문자로 작성하는 방식입니다.

2. Underscore Case 방식이란

식별자를 이루는 단어들을 소문자로만 작성하고, 그 단어들은 언더스코어(_)로 연결하는 방식입니다.

 

자바스크립트에서는 식별자를 작성할 때 관행적으로 Camel Case 방식을 많이 사용합니다.

따라서 우리 수업에서도 코드의 가독성 및 통일성을 위해 Camel Case 방식만을 사용할 것입니다.

var firstVar = 10;           // Camel Case 방식

function my_first_func {     // Underscore Case 방식

    var firstLocalVar = 20;  // Camel Case 방식

}

자바스크립트에서 하이픈(-)은 뺄셈을 위해 예약된 키워드이므로, 식별자를 작성할 때는 사용할 수 없습니다.

 

주석(comment)

주석(comment)이란 코드 내에 삽입된 일종의 설명문입니다.

주석은 작성자나 다른 개발자가 나중에 코드를 수정할 때 참고할 수 있으며, 웹 페이지 개발 시 디버깅에도 사용됩니다.

이러한 주석은 자바스크립트 코드의 어느 부분에라도 작성할 수 있으며, 웹 브라우저의 동작에는 전혀 영향을 미치지 않습니다.

자바스크립트 주석은 다음과 같은 두 가지 형식을 지원합니다.

1. 한 줄 주석 : // 주석문

2. 여러 줄 주석 : /* 주석문 */

 

자바스크립트 출력

자바스크립트는 여러 방법을 통해 결과물을 HTML 페이지에 출력할 수 있습니다.

자바스크립트에서 사용할 수 있는 출력 방법은 다음과 같습니다.

  1.  window.alert() 메소드
  2.  HTML DOM 요소를 이용한 innerHTML 프로퍼티
  3.  document.write() 메소드
  4.  console.log() 메소드

 

1. window.alert() 메소드

자바스크립트에서 가장 간단하게 데이터를 출력할 수 있는 방법은 window.alert() 메소드를 이용하는 것입니다.

window.alert() 메소드는 브라우저와는 별도의 대화 상자를 띄워 사용자에게 데이터를 전달해 줍니다.

See the Pen GRpmXaz by yunjunshin (@yjshin) on CodePen.

 

 

 

2. HTML DOM 요소를 이용한 innerHTML 프로퍼티

실제 자바스크립트 코드에서 출력을 위해 가장 많이 사용되는 방법은 HTML DOM 요소를 이용한 innerHTML 프로퍼티를 이용하는 방법입니다.

우선 document 객체의 getElementByID()나 getElementsByTagName() 등의 메소드를 사용하여 HTML 요소를 선택합니다.

그리고서 innerHTML 프로퍼티를 이용하면 선택된 HTML 요소의 내용(content)이나 속성(attribute)값 등을 손쉽게 변경할 수 있습니다.

See the Pen jObmeOW by yunjunshin (@yjshin) on CodePen.

 

 

 

document.write() 메소드

document.write() 메소드는 웹 페이지가 로딩될 때 실행되면, 웹 페이지에 가장 먼저 데이터를 출력합니다.

따라서 document.write() 메소드는 대부분 테스트나 디버깅을 위해 사용됩니다.

See the Pen XWmRxWa by yunjunshin (@yjshin) on CodePen.

 

 

하지만 웹 페이지의 모든 내용이 로딩된 후에 document.write() 메소드가 실행되면, 웹 페이지 내에 먼저 로딩된 모든 데이터를 지우고 자신의 데이터를 출력하게 됩니다.

따라서 document.write() 메소드를 테스트 이외의 용도로 사용할 때에는 충분히 주의해서 사용해야 합니다.

See the Pen vYNmVYv by yunjunshin (@yjshin) on CodePen.

 

 

 

console.log() 메소드

console.log() 메소드는 웹 브라우저의 콘솔을 통해 데이터를 출력해 줍니다.

대부분의 주요 웹 브라우저에서는 F12를 누른 후, 메뉴에서 콘솔을 클릭하면 콘솔 화면을 사용할 수 있습니다.

이러한 콘솔 화면을 통한 데이터의 출력은 좀 더 자세한 사항까지 출력되므로, 디버깅하는데 많은 도움을 줍니다.

console.log() 메소드

 

자바스크립트를 적용하는 방법

HTML 문서에 자바스크립트 코드를 적용하는 방법에는 다음과 같은 방법이 있습니다.

  1.  내부 자바스크립트 코드로 적용
  2.  외부 자바스크립트 파일로 적용

 

내부 자바스크립트 코드

자바스크립트 코드는 <script>태그를 사용하여 HTML 문서 안에 삽입할 수 있습니다.

다음 예제는 HTML 문서의 <head>태그에 자바스크립트 코드를 삽입한 예제입니다.

<!DOCTYPE html>
<html lang="ko">

<head>
	<meta charset="UTF-8">
	<title>JavaScript Apply</title>
	<script>
		function printDate() {
			document.getElementById("date").innerHTML = Date();
		}
	</script>
</head>

<body>
    
    <h1>head 태그 내의 자바스크립트</h1>
	<p>자바스크립트를 이용하면 현재 날짜와 시간 정보에도 손쉽게 접근할 수 있어요!</p>
	<button onclick="printDate()">현재 날짜와 시간 표시하기!</button>
	<p id="date"></p>

</body>

</html>

다음 예제는 HTML 문서의 <head>태그에 자바스크립트 코드를 삽입한 예제입니다.

 

다음 예제는 HTML 문서의 <body>태그에 자바스크립트 코드를 삽입한 예제입니다.

<!DOCTYPE html>
<html lang="ko">

<head>
	<meta charset="UTF-8">
	<title>JavaScript Apply</title>
</head>

<body>
    
    <h1>body 태그 내의 자바스크립트</h1>
	<p>자바스크립트를 이용하면 현재 날짜와 시간 정보에도 손쉽게 접근할 수 있어요!</p>
	<button onclick="printDate()">현재 날짜와 시간 표시하기!</button>
	<p id="date"></p>
	<script>
		function printDate() {
			document.getElementById("date").innerHTML = Date();
		}
	</script>

</body>

</html>

다음 예제는 HTML 문서의 <body>태그에 자바스크립트 코드를 삽입한 예제입니다.

위의 두 예제에서 살펴볼 수 있듯이 자바스크립트 코드를 <head>태그에 삽입하나 <body>태그에 삽입하나 동작상의 차이는 없습니다.

 

외부 자바스크립트 파일

자바스크립트 코드는 HTML 문서의 내부뿐만 아니라 외부 파일로 생성하여 삽입할 수도 있습니다.

외부에 작성된 자바스크립트 파일은 .js 확장자를 사용하여 저장합니다.

해당 자바스크립트 파일을 적용하고 싶은 모든 웹 페이지에 <script>태그를 사용해 외부 자바스크립트 파일을 포함하면 됩니다.

See the Pen XWmRxme by yunjunshin (@yjshin) on CodePen.

 

외부 자바스크립트 파일을 사용하면 웹의 내용을 담당하는 HTML 코드로부터 웹의 동작을 구현하는 자바스크립트 코드를 분리할 수 있습니다.

이렇게 하면 HTML 코드와 자바스크립트 코드를 각각 읽기도 편해지고, 유지 보수도 쉬워집니다.

또한, 외부 자바스크립트 파일은 웹 브라우저가 미리 읽어 올 수 있어 웹 페이지의 로딩 속도 또한 빨라집니다.

반응형

댓글