JSON(JavaScript Object Notation)

:: JavaScript에서 객체를 만들 때 사용하는 표현식

:: 다른 언어에서도 사용해서 서로 다른 언어들끼리 객체는 객체 그대로, 배열은 배열 그대로 전송이 가능

 

JavaScript 에서 객체와 배열 각각을 나타내는 방법

객체 {키1:값1, 키2:값2}

배열 [값1,값2,값3]

 

서버 어플리케이션-클라이언트 어플리케이션(자바스크립트 애플리케이션)이

서로 통신하며 작업해야 한다면 JSON을 꼭 사용해야 한다.

 

 

◇ JavaScript : JSON.stringify(), JSON.parse() => JSON을 만들고 JSON을 해석해서 다시 객체로 만들어냄(직렬화)

 

- JSON API 

ECMAscript 5에는 JSON을 공식적으로 지원하는 API가 포함되어 있음

 

- JSON.parse()

인자로 전달된 문자열을 자바스크립트의 데이터(객체)로 변환

 

- JSON.stringify()

인자로 전달된 자바스크립트의 데이터(객체)를 문자열로 변환

 

PHP : JSON.encode(), JSON.decode() => JSON 데이터를 만들고 해석함

 

- JSON.encode()

전달받은 값을 JSON 형식의 문자열로 변환하여 반환

 

- JSON.decode()

전달받은 JSON 형식의 문자열을 PHP 변수로 변환

 

 

php와 JavaScript는 서로 다른 언어임에도 불구하고 JSON의 포맷을 이용하게 되면 데이터를 서로 전송할 수 있게 된다.

 

 

'WEB > JavaScript' 카테고리의 다른 글

Open API 활용  (0) 2021.05.02
라이브러리 & 프레임워크  (0) 2021.01.27
웹 브라우저 제어  (0) 2020.11.08
콘솔  (0) 2020.11.05
이벤트  (0) 2020.11.05

Front-end : 우리가 보는 화면

Back-end : 화면에 보여줄 정보를 처리하는 곳

 

Front-end가 Back-end에 요청을 할 때 특정 규칙에 맞게 요청을 해야함

 

API(Application Programming Interface) = 사용 규칙을 제공하는 것

 

Open API : 누군가 Back-end를 만들어놓고 주소와 사용 규칙을 공개한 것을 의미

= "Back-end의 주소와 사용 규칙을 알고 있다면 Front-end만 만들어도 얼마든지 요청하고 데이터를 가져와서  쓸 수 있다는 것"

+) Front-end만 만들어 쓰는 것을 'serverless' 라고 부르기도 함

 

Front-end 의 요청(Request)과 Back-end의 응답(Response)은 API 마다 정해진 형식에 맞춰서 전달되고 이런 형식이 적혀진 문서API 가이드라고 한다.

 

공통적으로 요청과 응답에 대한 정보가 나와 있다.

<요청>

1. 주소 : 어디로 전달해야 할지

2. 전송방식 : GET/POST

3. 보낼 데이터 (API 요청에서 필요한 정보들)

 

<응답>

1. 형식 : JSON // 어떤 형식으로 날아오는지(요즘은 거의 대부분이 JSON 형태)

2. 응답 의미 설명 : JSON으로 날아온 응답에 어떤 것들이 포함되어 있는지 

 


1. jQuery CDN 이용

jQuery CDN 사이트에서 가져온다.

 

CDN (Content Delivery Network)

::특정 서버에 트래픽이 집중되지 않고 컨텐츠를 자동으로 가장 가까운 서버에서 다운받도록 하는 기술

<script
  src="https://code.jquery.com/jquery-3.6.0.js"
  integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk="
  crossorigin="anonymous"></script>

 

2. jQuery AJAX 이용

Examples에서 예시 하나를 복사해온다. (나중에 사용할 API 가이드에 맞춰서 수정할 예정)

 

Ajax

:: JavaScript의 라이브러리중 하나이며 Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자.

브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법 (기본적으로 HTTP프로토콜은 클라이언트쪽에서 Request를 보내고 Server쪽에서 Response를 받으면 이어졌던 연결이 끊기게 되어있음)

$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
})
  .done(function( msg ) {
    alert( "Data Saved: " + msg );
  });

 

 

<카카오 API 사용>

홈페이지(developers.kakao.com/)에 들어가서 로그인 -> 내 애플리케이션 만들기 ->  키 확인 가능

 

[도구] - [REST API 테스트] - 자신이 사용하고자 하는 API의 [개발 가이드 보러가기]

 

실제 제공하는 책 검색 API

 

 

<전체 코드>

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

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>API 연습</title>
</head>

<body>
    <h1>내 사이트임</h1>
    <script src="https://code.jquery.com/jquery-3.6.0.js"
        integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>

    <script>
        $.ajax({ //코드 상단 : 요청에 대한 정보
            method: "GET", // 전송 방식
            url: "https://dapi.kakao.com/v3/search/book?target=title", // 전송 URL
            data: { query: "미움받을 용기" }, //전송 정보 JSON 형식
            headers : { Authorization: "KakaoAK 'REST API 키'"}
        })
            .done(function (msg) {//요청에 대한 응답이 올 때 처리하는 코드
                console.log(msg);
            });
    </script>
</body>

</html>

 

코드 실행 후 개발자 도구 확인

요청에 대한 응답(Response) 정보 - [F12] 키를 이용해 확인(console.log 사용했으므로)

=> API 가이드를 참고해 비교해보면 필수 정보들이 잘 담겨져 있는 것을 확인할 수 있다

 


<JSON 데이터 JavaScript 접근 방법>

dog = {
    "name": "식빵",
    "family": "웰시코기",
    "age": 1,
    "weight": 2.14,
    "specialty" : ["솜사탕","부리부리"],
    "friend" : {"name": "젤리", "family": "푸들", "age": 7, "weight": 3.1}
}

"식빵"을 가져오려면? dog.name 혹은 .name

"솜사탕"을 가져오려면? dog.specialty[0]

"젤리"를 가져오려면? dog.friend.name

 

 

<실습>

아까 봐뒀던 개발자 도구 탭을 활용한다.

※ 'Object' -[마우스 오른쪽] - [Store object as global variable]

(응답 받은 JSON을 console 창에서 다루기 위해 따로 저장해두는 것)

 

 

그러면 temp1이라는 곳에 Object가 잘 저장이 된 것이 확인가능하다. 

"미움받을 용기"라는 책 제목과 썸네일을 불러올 것이기 때문에 

temp1.documents[0].title

temp1.documents[0].thumbnail

를 사용할 것이다.

 

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

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>API 연습</title>
</head>

<body>
    <h1>내 사이트임</h1>
    <script src="https://code.jquery.com/jquery-3.6.0.js"
        integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>

    <script>
        $.ajax({ //코드 상단 : 요청에 대한 정보
            method: "GET", // 전송 방식
            url: "https://dapi.kakao.com/v3/search/book?target=title", // 전송 URL
            data: { query: "미움받을 용기" }, //전송 정보 JSON 형식
            headers : { Authorization: "KakaoAK 'REST API 키'"}
        })
            .done(function (msg) {//요청에 대한 응답이 올 때 처리하는 코드
                console.log(msg.documents[0].title);
                console.log(msg.documents[0].thumbnail);
            });
    </script>
</body>

</html>

위의 코드와 똑같지만, console.log 함수를 통해서 console 창을 통해 데이터 확인이 가능하다.

 

실행 결과

console 창에서 올바르게 값을 불러왔다는 것을 확인할 수 있다.

 

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

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>API 연습</title>
</head>

<body>
    <h1>내 사이트임</h1>
    <p></p>
    <script src="https://code.jquery.com/jquery-3.6.0.js"
        integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>

    <script>
        $.ajax({ //코드 상단 : 요청에 대한 정보
            method: "GET", // 전송 방식
            url: "https://dapi.kakao.com/v3/search/book?target=title", // 전송 URL
            data: { query: "미움받을 용기" }, //전송 정보 JSON 형식
            headers: { Authorization: "KakaoAK 'REST API 키'" }
        })
            .done(function (msg) {//요청에 대한 응답이 올 때 처리하는 코드
                console.log(msg.documents[0].title);
                console.log(msg.documents[0].thumbnail);
                $("p").append("<strong>" + msg.documents[0].title + "</strong><br>");
                $("p").append("<img src='"+ msg.documents[0].thumbnail + "'/>");
            });
    </script>
    </script>
</body>

</html>

<p>태그를 추가한 후

append를 통해 (jQuery add html 검색하면 쉽게 방법을 알 수 있음)

<p>태그에 들어갈 내용을 추가해주었다.

 

 

최종 실행 화면

 

 

www.youtube.com/watch?v=QPEUU89AOg8

 

'WEB > JavaScript' 카테고리의 다른 글

JSON  (0) 2021.05.02
라이브러리 & 프레임워크  (0) 2021.01.27
웹 브라우저 제어  (0) 2020.11.08
콘솔  (0) 2020.11.05
이벤트  (0) 2020.11.05

라이브러리 

:: 자신이 만들고자 하는 프로그램에 필요한 부품들이 되는 소프트웨어들을 잘 정돈해 놓은,

재사용하기 쉽게 돼 있는 소프트웨어이다.

 

프레임워크

:: 자신이 만들고자 하는 것이 있을 때 그것이 무엇이냐에 따라 언제나 필요한 공통적인 것이 있고, 

기획 의도에 따라 달라지는 부분이 있다. 이 공통적인 부분이 프레임워크이다. (뼈대)

 

프레임워크 = 라이브러리 + 클래스 라고 생각하면 쉽다.

 


자바스크립트 라이브러리에서 가장 유명한 것은 jQuery라는 라이브러리이다.

jQuery는 상당히 오래됐고, 아주 안정적인 라이브러리이다. 이것을 사용하면 생산성, 효율성이 훨씬 높아진다.

 

사용 방법

1. jQuery 라이브러리를 다운로드 받고 그 파일을 프로젝트 디렉터리로 옮긴다.

2. CDN(Content Delivery Network)을 이용한다.

  - 많은 라이브러리들은 CDN을 통해 자신들의 서버에 파일을 보관해놓고, 사용자는 <script> 태그의 src 속성을 통해 가져가는 방식을 취한다.

출처 jQuery 사이트
가장 최신의 것
<script> 태그로 삽입
jQuery를 통해 반복문을 짧게 줄인 예시

$('a')는 이 웹 페이지의 모든 <a> 태그를 jQuery로 제어하겠다는 뜻이다.

 

jQuery를 통해 기존 코드 수정 예시2

자바스크립트를 통해 우리 대신 css( )라는 함수를 jQuery가 만들어 두어 대신 처리해주는 것이다.

 

 

이런 식으로 jQuery 라이브러리를 사용한다면 코드는 더욱 직관적이고 간결해진다.

'WEB > JavaScript' 카테고리의 다른 글

JSON  (0) 2021.05.02
Open API 활용  (0) 2021.05.02
웹 브라우저 제어  (0) 2020.11.08
콘솔  (0) 2020.11.05
이벤트  (0) 2020.11.05

자바스크립트를 통해 할 수 있는 일 가운데 하나는 웹 브라우저를 제어하는 것이다.

첫 번째, style 에 들어가는 CSS문을 알 필요가 있고

두 번째, 스타일 속성을 주기 위해 그 속성을 가지고 있는 태그를 웹 브라우저에게 알리는 방법을 자바스크립트 문법으로 알아야 한다.

 

제어할 태그 선택하기

글쓴이는 만들고자 하는 웹 페이지에서 누르는 버튼에 따라 다르게 동작하도록 하고 싶다.

먼저 <input>태그로 버튼을 추가한다.

... 생략...  
  <input type="button" value="night">
  <input type="button" value="day">
  ...생략...

 

이 버튼을 클릭했을 때 이벤트가 필요하다.

따라서 onclick 속성을 추가한다.

...생략...
<input type="button" value="night" onclick="">
<input type="button" value="day" onclick="">
...생략...

 

이 버튼을 클릭했을 때 <body>태그에 style 속성을 동적으로, 프로그래밍적으로, 상호작용에 의해 넣으려고 한다.

그러기 위해서는 자바스크립트 문법에 따라 웹 브라우저에게 <body>태그를 선택하게 해야한다.

추천 검색어 ex) 'javascript select tag by css selector'

→ document.querySelector('body')

(여기서 괄호안에는 원하는 태그를 넣으면 된다. 클래스명이 'apple'이라면 document.querySelector(".apple")이라고 하면 되고, id값이 'target'이라면 document.querySelector('#target')이라 지정하면 된다.)

 

 

이제 선택했으니 <body>태그에 스타일 속성을 어떻게 자바스크립트로 넣을 수 있는지 알아봐야 한다.

추천 검색어 ex) 'javascript element style' 

이를 참고해 document.querySelector('body').style 이라고 작성한다.

 

추천 검색어 ex) 'javascript style background-color'

이를 참고해 document.querySelector('body').style.backgroundColor = 'black'; 이라고 작성한다.

...생략...
    <input type="button" value="night" onclick="
    	document.querySelector('body').style.backgroundColor='black';
        document.querySelector('body').style.color='white';">
    <input type="button" value="day" onclick="
    	document.querySelector('body').style.backgroundColor='white';
    	document.querySelector('body').style.color='black';">
...생략...

 

최종적으로 작성한 코드이다. 

이렇게 사용자와 상호작용해서 HTML과 CSS를 동적으로 변경하는 방법을 알게 되었다.

 

 

조건문 활용

...생략...
<input id="night_day" type="button" value="night" onclick="
    if (document.querySelector('#night_day').value === 'night'){
      document.querySelector('body').style.backgroundColor='black';
      document.querySelector('body').style.color='white';
      document.querySelector('#night_day').value = 'day';
    } else {
      document.querySelector('body').style.backgroundColor='white';
      document.querySelector('body').style.color='black';
      document.querySelector('#night_day').value = 'night';}
">
  ...생략...

 

if else를 활용한 코드이다.

참고) === 는 좌항과 우항을 비교하는 비교연산자. 결과로 TRUE와 FALSE 가 나온다.

[if] id가 night_day인 태그의 value가 night 라면 배경색을 black로, 글자색을 흰색으로, value 값을 day로 바꾼다.

[else] 그것이 아니라면(value가 day라면) 배경색을 white로, 글자색을 검정색으로, value 값을 night로 바꾼다.

 

 

중복의 제거를 위한 리팩터링

코드의 가독성을 높이고, 유지보수를 편리하게 만들고, 중복된 코드를 줄이는 방향으로 코드를 개선하는 작업을 리팩터링(refactoring)이라 한다.

 

...생략...
    <input type="button" value="night" onclick="
    var target = document.querySelector('body');
    if (this.value === 'night'){
      target.style.backgroundColor='black';
      target.style.color='white';
      this.value = 'day';
    } else {
      target.style.backgroundColor='white';
      target.style.color='black';
      this.value = 'night';}
      ">
...생략...

앞서 작성했던 코드의 리팩터링 후 모습이다.

input 태그 안의 id를 삭제한 후

document.querySelector('#night_day')를 this (onclick과 같은 이벤트 안에서 실행되는 코드에서 현재 코드가 속해 있는 태그를 가리키도록 약속돼있는 특수한 키워드)로,

반복되는 body 태그 document.querySelector('body')를 target 으로 변경하였다.

 

 

배열과 반복문의 활용

야간 모드일 때는 링크들이 밝게 표시되고, 주간 모드일 때는 다소 어두운 계열로 링크가 표시되게 완성해 보자.

...생략...
    <input type="button" value="night" onclick="
    var target = document.querySelector('body');
    if (this.value === 'night'){
      target.style.backgroundColor='black';
      target.style.color='white';
      this.value = 'day';

      var alist = document.querySelectorAll('a');
      var i = 0;
      while(i < alist.length){
        alist[i].style.color = 'powderblue';
        i = i + 1;
      }
    } else {
      target.style.backgroundColor='white';
      target.style.color='black';
      this.value = 'night';

      var alist = document.querySelectorAll('a');
      var i = 0;
      while(i < alist.length){
        alist[i].style.color = 'blue';
        i = i + 1;
      }
    }
      ">
...생략...

위 코드는 <a>태그에 있는 글자들을 찾아(var alist = document.querySelectorAll('a');) 배열과 반복문을 활용해서 글씨를 바꿔준(alist[i].style.color = 'blue';) 예시다.

 

 

함수의 활용

동작하는 내용은 똑같지만 코드를 효율적으로 만드는 것을 리팩터링이라고 했다.

...생략...
 <head>
    ...생략...
    <script>
      function nightDayHandler(self){
        var target = document.querySelector('body');
        if (self.value === 'night'){
          target.style.backgroundColor='black';
          target.style.color='white';
          self.value = 'day';

          var alist = document.querySelectorAll('a');
          var i = 0;
          while(i < alist.length){
            alist[i].style.color = 'powderblue';
            i = i + 1;
          }
        } else {
          target.style.backgroundColor='white';
          target.style.color='black';
          self.value = 'night';

          var alist = document.querySelectorAll('a');
          var i = 0;
          while(i < alist.length){
            alist[i].style.color = 'blue';
            i = i + 1;
          }
        }
      }
    </script>
  </head>

  <body>
    ...생략...
    <input type="button" value="night" onclick="nightDayHandler(this)">
...생략...

함수를 만들어 <head>태그 안에 넣어줬다.

원래 onclick 이벤트 안에서 this는 onclick 이벤트가 소속되어 있는 input 태그를 가리키도록 약속되어 있는데, 

독립되어 있는 함수를 만들면 원래의 this는 더 이상 input 버튼이 아니고, 전역객체(윈도우)를 가리키게 된다.

 

따라서 함수는 매개변수를 self로 받고, 함수를 실행할 때는 this를 매개변수로 넣어 input 버튼을 가리키도록 했다.

이렇게 함으로써 코드의 효율성이 크게 증가한다.

 

 

객체의 활용

서로 연관된 함수와 서로 연관된 변수를 같은 이름으로 그룹핑하기 위한 도구를 객체라고 생각하면 쉽다.

객체에 소속된 함수메서드라고 하며, 객체에 소속된 변수프로퍼티라 한다.

...생략...
    <script>
      var Body ={
        setColor: function(color){
          document.querySelector('body').style.color = color;
        },
        setbackgroundColor: function(color){
          document.querySelector('body').style.backgroundColor = color;
        }
      }
      var Links = {
        setColor: function(color){
          var alist = document.querySelectorAll('a');
          var i = 0;
          while(i < alist.length){
            alist[i].style.color = color;
            i = i + 1;
          }
        }
      }

      function nightDayHandler(self){
        var target = document.querySelector('body');
        if (self.value === 'night'){
          Body.setbackgroundColor('black');
          Body.setColor('white');
          self.value = 'day';
          Links.setColor('powderblue');
        } else {
          Body.setbackgroundColor('white');
          Body.setColor('black');
          self.value = 'night';

          Links.setColor('blue');
        }
      }
    </script>
  </head>
...생략...

주의할 점 : 객체에서는 프로퍼티와 프로퍼티를 구분하기 위해 콤마를 사용해야 한다.

 

 

파일로 쪼개서 정리 정돈 하기

<script>태그에 있는 내용들을 다른 웹 페이지에서도 구현하고 싶다.

따라서 <script>태그 안에 있는 내용을 따로 color.js라는 자바스크립트 파일로 저장한 뒤, 웹 페이지에서 링크를 불러올 거다.

↓color.js 코드

  var Body ={
    setColor: function(color){
      document.querySelector('body').style.color = color;
    },
    setbackgroundColor: function(color){
      document.querySelector('body').style.backgroundColor = color;
    }
  }
  var Links = {
    setColor: function(color){
      var alist = document.querySelectorAll('a');
      var i = 0;
      while(i < alist.length){
        alist[i].style.color = color;
        i = i + 1;
      }
    }
  }

  function nightDayHandler(self){
    var target = document.querySelector('body');
    if (self.value === 'night'){
      Body.setbackgroundColor('black');
      Body.setColor('white');
      self.value = 'day';
      Links.setColor('powderblue');
    } else {
      Body.setbackgroundColor('white');
      Body.setColor('black');
      self.value = 'night';

      Links.setColor('blue');
    }
  }

↓본문에서의 사용

  <head>
    ...생략...
    <script src="color.js"></script>
    ...생략...
  </head>

이렇게 작성한 코드를 재사용하게 되는 것이며, color.js 파일을 수정하면 모든 웹 페이지에 동시에 변화가 반영이 된다.

가독성이 좋아지고, 코드가 훨씬 명확해지며, 코드의 의미를 파일의 이름을 통해 확인할 수 있게 된다.

그리고 이렇게 하면 좋은 점이 또 있다.

웹 페이지를 로드하면서 웹 페이지에 접속해서 자바스크립트 파일도 다운로드 해야하므로 2번 접속해야 한다. 웹 서버 입장에서는 나쁜 일이다. 그럼에도 이렇게 하는 게 훨씬 더 효율적이다. 왜냐하면 캐시 때문이다.

캐시는 '저장한다'는 의미인데, 한 번 웹 페이지에서 다운로드된 파일은 웹 브라우저가 보통 컴퓨터에 저장해놓는다. 따라서 다음에 접속할 때 저장된 파일을 읽어서 네트워크를 통하지 않게 한다. 서버 입장에서 훨씬 더 비용을 절감할 수 있고, 사용자 입장에서도 네트워크 트래픽을 절감할 수 있으며, 훨씬 더 빠르게 웹 페이지를 화면에 표시할 수 있다는 효과가 생기기 때문에 이렇게 파일로 쪼개는 것이 좋은 방법이다. 

 

 

 

 

 

위 글은 「생활코딩! HTML+ CSS + 자바스크립트」의 내용을 참고하여 작성한 글입니다.

'WEB > JavaScript' 카테고리의 다른 글

Open API 활용  (0) 2021.05.02
라이브러리 & 프레임워크  (0) 2021.01.27
콘솔  (0) 2020.11.05
이벤트  (0) 2020.11.05
JavaScript 시작, <script> 태그  (0) 2020.11.05

경우에 따라서 파일이 아니더라도 간단하게 어떤 코드를 실행해야 하는 상황들이 있는데,

이런 경우에 콘솔(console)을 사용한다.

이 콘솔을 계산기로 쓸 수도 있고, 자바스크립트 코드를 즉석에서 실행할 수 있다.

 

콘솔을 통해 자바스크립트 코드를 실행하면 현재 열려있는 웹 페이지를 대상으로 자바스크립트 코드가 실행된다.

 

 

 

위 글은 「생활코딩! HTML+ CSS + 자바스크립트」의 내용을 참고하여 작성한 글입니다.

'WEB > JavaScript' 카테고리의 다른 글

Open API 활용  (0) 2021.05.02
라이브러리 & 프레임워크  (0) 2021.01.27
웹 브라우저 제어  (0) 2020.11.08
이벤트  (0) 2020.11.05
JavaScript 시작, <script> 태그  (0) 2020.11.05

이벤트자바스크립트가 사용자와 상호작용하는 데 핵심적인 역할을 한다.

 

...생략...
  <body>
    <input type="button" value="hi" onclick="alert('hi')">
  </body>
...생략...

 

<input> 태그에 onclick이라는 속성을 썼는데, 이 속성은 아주 특별한 속성이다. 

HTML 설명서에는 "onclick 속성 값으로는 반드시 자바스크립트 코드가 와야 합니다"라고 적혀있다. 

다음으로, "onclick 속성의 값은 웹 브라우저가 기억해 뒀다가, onclick 속성이 위치하고 있는 태그를 사용자가 클릭했을 때 자바스크립트 코드를 자바스크립트 문법에 따라 해석해서 웹 브라우저가 실행할 것입니다."라고 적혀있다.

 

그래서 'hi' 버튼을 클릭했을 때 alert('hi')라는 코드가 실행되는 것을 알 수 있다. 

이처럼 웹 브라우저 위에서 일어나는 일들을 사건, 영어로는 이벤트(event)라고 한다. 

 

...생략...
  <body>
    <input type="button" value="hi" onclick="alert('hi')">
    <input type="text" onchange="alert('changed')" />
    <input type="text" onkeydown="alert('keydown')" />
  </body>
...생략...

 

여러 이벤트를 사용한 결과다.

내용이 변했을 때를 체크하는 이벤트는 onchange이다.

키보드의 키를 누르는 것을 감지하는 이벤트는 onkeydown이다.

 

사용자가 어떤 키를 눌렀을 때 이벤트가 발생하도록 만들고 싶다면 

예) 'javascript keydown event attribute'로 검색하는 것을 추천한다.

 

 

위 글은 「생활코딩! HTML+ CSS + 자바스크립트」의 내용을 참고하여 작성한 글입니다.

'WEB > JavaScript' 카테고리의 다른 글

Open API 활용  (0) 2021.05.02
라이브러리 & 프레임워크  (0) 2021.01.27
웹 브라우저 제어  (0) 2020.11.08
콘솔  (0) 2020.11.05
JavaScript 시작, <script> 태그  (0) 2020.11.05

HTML 정적이다. 한번 화면에 출력되면 언제나 그 모습 그대로이다.

반대로 우리가 알고 있는 데스크톱이나 모바일에서 사용되는 여러 프로그램, 예를 들면 게임 같은 경우 사용자의 조작에 반응해서 프로그램이 움직인다.

사람들은 웹 페이지도 게임처럼 동적으로 사용자와 상호작용할 수 있게 되기를 원했고, 

그래서 태어난 기술이 자바스크립트(JavaSxript)이다. 

 

자바스크립트는 HTML 위에서 동작하는 언어다.

자바스크립트 코드를 넣을 때는 우선 웹 브라우저에게 지금부터 HTML에 자바스크립트 코드가 시작된다는 사실을 알려야 한다. 그때 사용하는 태그가 <script>이다.

 

...생략...
  <body>
    <h1>JavaScript</h1>
    <script>
      document.write('hello world');
    </script>
  </body>
...생략...

 

위 글은 「생활코딩! HTML+ CSS + 자바스크립트」의 내용을 참고하여 작성한 글입니다.

 

'WEB > JavaScript' 카테고리의 다른 글

Open API 활용  (0) 2021.05.02
라이브러리 & 프레임워크  (0) 2021.01.27
웹 브라우저 제어  (0) 2020.11.08
콘솔  (0) 2020.11.05
이벤트  (0) 2020.11.05

+ Recent posts