-
JavaScript의 첫걸음 ~ 자바스크립트가 뭔가요?Java Script/MDN 정리 2020. 7. 22. 23:18반응형
그래서, 진짜 어떤 일을 할 수 있나요?
- APIs(Application Programming Interfaces)
- 이미 만들어진 코드의 집합체, 개발자들이 만들기 어렵고 힘든 부분을 쉽게 구현하도록 하는 프로그램
- Browser API
- 웹 브라우저에 설치된 API들로, 컴퓨터 환경구성으로 부터 데이터를 보이게 하고 복잡한 일들을 하게한다.
- DOM(Document Object Model) API
- 동적으로 페이지의 스타일을 정하는 등 HTML과 CSS를 알맞게 조정하는 역할
- 팝업창이나 컨텐츠들이 보여지는 것들 모두 DOM의 결과
- Geolocation API
- 지리적인 정보를 검색하게 해준다.
- Google Maps가 어떻게 위치를 찾고 지도에 표시하는지 알 수 있게 한다.
- Canvas와 WebGL API
- 2D와 3D 그래픽을 만들 수 있게한다.
- Audio and Video API
- HTMLMediaElement와 WebRTC
- 음악과 비디오를 웹 페이지에서 재생하고, 웹캠으로 캡처하고 다른 컴퓨터에 표시하는 등의 멀티미디어를 활용할 수 있는 기술 지원
- Third party API
- 브라우저에 기본적으로 설치된 API가 아닌 인터넷에서 개인적으로 정보와 코드를 얻어 프로그래밍한 것
- Twitter API
- 웹사이트에 가장 최근의 트윗을 보여준다.
- Google Maps API, OpenStreetMap API
- 웹사이트에 원하는 지도를 넣어주고 추가기능을 지원함
- 이외 여러 개발, 배포된 API들
웹 페이지에서 JavaScript는 어떤 일을 하나요?
자바스크립트 실행 순서
일반적으로는 위에서 아래로 순차적으로 실행된다.
const para = document.querySelector('p'); //HTML 요소 중 p태그를 선택 para.addEventListener('click', updateName); //para에 저장된 객체가 클릭되었을 때 updateName 함수를 실행 function updateName() { let name = prompt('Enter a new name'); //'Enter a new name'과 입력란 출력하여 입력받은 값을 name에 저장 para.textContent = 'Player 1: ' + name; //papa(p태그)에 새로운 문자열 저장 }
- p태그의 요소를 para 변수에 저장(1번줄)
- 그리고 event listener를 붙여(3번줄) p태그가 클릭되었을 때 updateName()코드 블록이 실행된다. (5-8번줄)
- 위의 코드에서 1번과 3번이 바뀌면 실행 X
- 해석형(인터프리터) 언어와 컴파일러형 언어
- 인터프리터 언어
- 코드가 위에서 아래로 순차적으로 실행되고 그 즉시 결과 반환
- JavaScript는 인터프리터 언어에 해당된다.
- 컴파일러 언어
- 컴퓨터에 동작되기 전 다른 형식으로 변환하는 언어
- C와 C++과 같은 언어는 어셈플리어로 컴파일되어 동작
- 인터프리터 언어
서버측 코드와 클라이언트측 코드
- 클라리언트측 코드
- 사용자의 컴퓨터에서 작동
- 클라이언트측 코드가 사용자의 컴퓨터로 다운로드되고 브라우저가 이를 표시
- 이런 자바스크립트 모듈을 정확히는 클라이언트측 자바스크립트라고 한다.
- 서버측 코드
- 서버에서 작동되고, 그 결과가 브라우저에 넘어가 표시됨
- PHP, Python, Ruby, ASP.NET 등이 대표 예
- Node.js로 JS도 가능
- 클라리언트측 코드
동적 VS 정적 코드
- 동적
- 클라이언트측 서버측 언어 모두를 가르킨다
- 각기 다른 상황에서 적절한 정보가 보이고, 컨텐츠를 웹페이지나 앱 상에서 계속적으로 노출시키는 역할을 한다
- 클라이언트측 자바스크립트는 새로운 HTML 표를 만들어 서버에서 요청한 데이터를 뿌려 사용자에게 보이는 등 동적으로 브라우저 안에서 작동된다.
- 정적
- 동적으로 바뀌지 않는 페이지를 "정적"페이지라고 한다. (항상 같은 콘텐츠를 보여준다.)
- 동적
스크립트의 로딩 방법
모든 HTML 요소는 순서대로 페이지에 로드된다
- 만약 자바스크립트를 이용해 HTML 요소를 조작할 경우(정확하게는 DOM), 자바스크립트 코드가 조작 대상인 HTML 요소보다 먼저 실행된다면, 조작할 요소가 존재하지 않는 상태이기 때문에 제대로 동작하지 않음
내부 자바스크립트 예제
document.addEventListener("DOMContentLoaded", function() { ... });
- DOMContentLoad 이벤트가 발생되었을 때 function()을 실행한다는 의미
- 따라서, 브라우저가 완전히 로드되고 해석될 때 발생
- DOMContentLoad 이벤트가 발생되었을 때 function()을 실행한다는 의미
외부 스크립트 예제
async
- 페이지가 나타나는 동안 비동기 방식으로
위의 예제의 경우에 async는 3개의 js파일의 순서를 보장 X
defer의 경우 jquery -> script2 -> script3의 순서가 보장된다.
따라서, script2나 script3가 jquery의 함수를 사용하거나 할 때 이용
반응형'Java Script > MDN 정리' 카테고리의 다른 글
JavaScript 첫걸음 ~ 문자열 제대로 다루기 (0) 2020.07.23 JavaScript 첫걸음 ~ 자바스크립트 기초 (0) 2020.07.23 웹과 함께 시작하기 ~ 웹 작동 방식 (0) 2020.07.22 웹과 함께 시작하기 ~ 자바 스크립트 기초 (0) 2020.07.22 웹과 함께 시작하기 ~ CSS 기초 (0) 2020.07.22 - APIs(Application Programming Interfaces)