[JavaScript] 기본 개념
HTML로 웹 화면을 구현하고, CSS로 웹을 디자인 해보았다.
그렇다면 이제는 만들어진 웹 페이지를 사용하려면 웹에 기능을 넣어줄 차례이다.
웹의 동작을 구현하는 JavaScript에 대해 알아보자!
자바스크립트(JavaScript)
자바스크립트는 객체(object)기반의 스크립트 언어이다.
웹의 동작을 구현할 수 있다.
자바스크립트의 특징
1. 객체 기반의 스크립트 언어이다.
2. 동적이며, 타입을 명시할 필요가 없다.
*자바스크립트 언어는 컴파일 작업을 거치지 않고, 소스 코드를 바로 실행할 수 있는 언어이기 때문
3. 객체 지향형 프로그래밍과 함수형 프로그래밍 모두 표현할 수 있다.
자바 vs 자바스크립트
코딩을 공부하기 전 자바스크립트가 자바에서 파생된 언어일 것이라 생각했다.
하지만 두 언어는 서로 직접적인 관련은 없으며,
비슷한 점보다는 다른 점이 훨씬 많다.
문법상 비슷한 부분은 두 언어의 문법이 모두 C언어를 기반으로 만들어졌기 때문이다.
자바 | 자바스크립트 |
컴파일 언어 | 인터프리터 언어 (컴파일 거치지 않음) |
타입 검사 O | 타입 명시 X |
클래스 기반 객체 지향 언어 | 프로토타입 기반의 객체 지향 언어 |
자바스크립트 문법
- 실행문은 세미콜론 ; 으로 구분된다.
- 대소문자를 구분한다.
리터럴(literal) : 직접 표현되는 값 그 자체
식별자(identifier) : 변수나 함수의 이름
- 식별자는 영문자(대소문자), 숫자, 언더스코어(_), 달러($)만 사용 가능
- 숫자로 시작 불가
- 식별자 작성 방식
1. Camel Case(첫 번째 단어 모두 소문자, 다음 단어부터 첫 문자만 대문자 / 대부분 Camel Case 사용)
2. Underscore Case(단어들을 소문자로만 작성하고, 언더스코어(_)로 연결)
키워드(Keyword) [예약어 (reserved word)] : 특별한 용도로 사용하기 위해 미리 예약된 단어
식별자로 사용할 수 없다.
ex) let - 변수 정의 / function - 함수 정의
주석(comment) : 코드 내에 삽입된 설명 , 웹 브라우저 동작에 영향 미치지 않는다.
1. 한 줄 주석 : // 주석문
2. 여러 줄 주석 : /* 주석문 */
자바스크립트 출력
자바스크립트 실행문을 HTML 페이지에 출력할 수 있다.
1. window.alert() 메소드
브라우저와는 별도의 대화 상자를 띄워 사용자에게 데이터를 전달
<body>
<!-- alert() -->
<button onclick="alert('HelloWorld')">버튼1</button>
<button onclick="alert (10+20)">버튼2</button>
<button onclick="alert('줄바꿈문자도\n허용이됩니다\n확인')">버튼3</button>
<!-- confirm -->
<!-- confirm : 확인/취소 버튼 함께 출력-->
<button onclick="confirm('yes/no')">버튼4</button>
</body>
2. HTML DOM 요소를 이용한 innerHTML 프로퍼티
document 객체의 getElementByID(), getElementsByTagName() 등의 메소드를 사용하여 HTML 요소를 선택한 후,
innerHTML 프로퍼티를 이용하면 선택된 HTML 요소의 내용이나 속성값 등을 손쉽게 변경할 수 있다.
ex) 아래의 예시를 실행하면 바뀌어진 문장이 출력된다.
<body>
<h1>innerHTML 프로퍼티</h1>
<!-- 실행 시 '바꾸기 전'이라는 문장 표시 -->
<p id="text">바꾸기 전</p>
<script>
// getElementById를 통해 위 HTML 실행문의 id값 "text"를 str 변수로 가져옴
let str = document.getElementById("text");
// str변수의 text내용을 innerHTML 프로퍼티로 바뀐 문장 출력
str.innerHTML = "문장이 바뀌었습니다!";
</script>
</body>
3. document.write() 메소드
웹 페이지가 로딩될 때 실행되면, 웹 페이지에 가장 먼저 데이터를 출력
대부분 테스트나 디버깅을 위해 사용한다. (테스트 이외의 용도로 사용할 때에는 주의해서 사용해야한다)
웹 페이지의 모든 내용이 로딩된 후에 document.write() 메소드가 실행되면,
웹 페이지 내에 먼저 로딩된 모든 데이터를 지우고 자신의 데이터를 출력
<body>
<script>
document.write("HELLO<br>");
document.write(10+20);
</script>
<button onclick="document.write('기본페이지내용삭제됨!!');">버튼</button>
</body>
4. console.log() 메소드
웹 브라우저의 콘솔을 통해 데이터를 출력
F12를 누른 후, 메뉴에서 콘솔을 클릭하면 콘솔 화면을 사용할 수 있다.
자세한 사항까지 출력되므로, 디버깅하는데 도움이 된다.
<body>
<script>
console.log("Hello World");
</script>
</body>
자바스크립트 적용 방법
1. 내부 자바스크립트 코드로 적용
<script>태그를 사용하여 HTML 문서 안에 삽입
자바스크립트 코드는 HTML 문서의 <head>태그, <body>태그, 양쪽 모두에 위치할 수 있다.
ex)
<script>
document.getElementById("text").innerHTML = "자바스크립트";
</script>
2. 외부 자바스크립트 파일로 적용
외부에 작성된 자바스크립트 파일은 .js 확장자를 사용하여 저장
적용하고 싶은 웹 페이지에 <script>태그를 사용해 외부 자바스크립트 파일 포함시켜 주어야 한다.
ex)
<head>
<meta charset="UTF-8">
<title>JavaScript Apply</title>
<script src="/example.js"></script>
</head>