๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

#1 Language ๐Ÿ‘„/1-2 Javascript

[Javascript] ECMAScript 5 (ES5)

๐Ÿ’ก ECMAScript ๋ž€?

JavaScript๊ฐ€ ๋„ท์Šค์ผ€์ดํ”„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ฆˆ๋กœ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ๋˜๊ณ  ๋‚˜์„œ, MS์—์„œ JScript๋ฅผ ๊ฐœ๋ฐœํ•˜์˜€๋‹ค.
๋‘ ์–ธ์–ด๋Š” ์„œ๋กœ ํ˜ธํ™˜๋˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.

์ด ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด JavaScript๋ฅผ ํ‘œ์ค€ํ™”๋ฅผ ํ–ˆ๋‹ค.๊ทธ๊ฒŒ ๋ฐ”๋กœ ECMAScript ์ด๋‹ค.(ECMAScript๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ด์œ ๋Š” ๋น„์˜๋ฆฌ ํ‘œ์ค€ํ™”๊ธฐ๊ตฌ์ธ ์ธํ„ฐ๋‚ด์…”๋„์ด Javascript ํ‘œ์ค€ํ™” ์š”์ฒญ์„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.)
์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ES5, ES6์€ ๋ฒ„์ „ ์ˆซ์ž๋ฅผ ๋ถ™์—ฌ ECMAScript๋ฅผ ์ค„์—ฌ์“ฐ๋Š” ๋ง์ด๋‹ค.์ฐธ๊ณ ๋กœ 2015๋…„์— ๋‚˜์˜จ ๊ฒƒ์ด ES5์ด๊ณ  2016๋…„์— ๋‚˜์˜จ ๊ฒƒ์ด ES6๋ผ๊ณ  ์ฐฉ๊ฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,ES5๋Š” 2009๋…„์— ๋ฐœํ‘œ๋˜์—ˆ๊ณ  ES6๋Š” 2015๋…„์— ๋ฐœํ‘œ๋˜์—ˆ๋‹ค.

 

1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘ํ•˜๊ธฐ
    - html ๋ฌธ์„œ์— <script type="text/javascript>๋กœ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉ
    - ํ˜„์žฌ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ <head>ํƒœ๊ทธ ์•ˆ์—์„œ ์‚ฌ์šฉ
    - ์ œ์ผ ์ข‹์€ ๋ฐฉ์‹์€ <body>์•ˆ ์ตœํ•˜๋‹จ์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ
    - <body>ํƒœ๊ทธ ์ตœํ•˜๋‹จ์— ์žˆ์–ด์•ผ ๋ชจ๋“  html ํƒœ๊ทธ๋“ค์ด ๋กœ๋“œ๋œ ํ›„์— ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰

2. ์™ธ๋ถ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ
    - ์ˆœ์ˆ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ(.js)๋กœ ๋งŒ๋“ค์–ด์„œ html ๋ฌธ์„œ์—์„œ ํ˜ธ์ถœ
    - <script type="text/javascript" src="jsํŒŒ์ผ ๊ฒฝ๋กœ">

3. ๋ณ€์ˆ˜
    - ES5์—์„œ๋Š” ๋ชจ๋“  ๋ณ€์ˆ˜๋Š” var๋กœ ์„ ์–ธ
    - var ๋ณ€์ˆ˜๋ช…; ๋˜๋Š” var ๋ณ€์ˆ˜๋ช… = ์ดˆ๊ธฐํ™” ๊ฐ’;
    - var๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์€ ์ •์ˆ˜ํ˜•, ์‹ค์ˆ˜ํ˜•, ๋ฌธ์ž์—ด, ๋…ผ๋ฆฌํ˜•, null ...
    - ๋ฌธ์žํ˜•๋ฐ์ดํ„ฐ๋Š” ''๋‚˜ "" ๋ฌถ์–ด์„œ ํ‘œ์‹œ
    - ๋ฌธ์žํ˜•๋ฐ์ดํ„ฐ์— ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•˜๋ฉด html ํƒœ๊ทธ๋กœ ์ธ์‹
    - ์ˆซ์žํ˜•๋ฐ์ดํ„ฐ๋Š” ์ˆซ์ž๋งŒ ์ง€์ •ํ•ด์•ผ๋จ "100"->๋ฌธ์ž์—ด๋กœ ์ธ์‹
    - ๋…ผ๋ฆฌํ˜•๋ฐ์ดํ„ฐ๋Š” true, false๋งŒ ์ง€์ •๊ฐ€๋Šฅ, ์กฐ๊ฑด์‹์œผ๋กœ๋„ true๋‚˜ false ์ง€์ •๊ฐ€๋Šฅ
      ex) var bool = 10 < 100; -> bool = true
    - undefined์€ ๋ณ€์ˆ˜์— ์•„๋ฌด ๊ฐ’์ด ๋“ฑ๋ก๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ƒํƒœ
      ex) var s; -> s = undefined
    - null์€ ๋ณ€์ˆ˜์— null ๊ฐ’์„ ์ €์žฅํ•œ ์ƒํƒœ
      ex) var t = null;
    
4. typeof ๋ฉ”์†Œ๋“œ
    - ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ํ˜•์„ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

5. ์—ฐ์‚ฐ์ž
    - ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž : +, -, *, /, %
    - ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ ์—ฐ์‚ฐ์ž : +
                          ๋ฌธ์ž์—ด + ๋ฌธ์ž์—ด = ๋ฌธ์ž์—ด
                          ๋ฌธ์ž์—ด + ์ˆซ์žํ˜• = ๋ฌธ์ž์—ด
    - ๋Œ€์ž…์—ฐ์‚ฐ์ž : =, +=, -=, *=, /=, %=
    - ์ฆ๊ฐ์—ฐ์‚ฐ์ž : ++, --
    - ๋น„๊ต์—ฐ์‚ฐ์ž : >, <, >=, <=, ==, !=, ===, !==
    - ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž : ||, &&, !
    - ์‚ผํ•ญ ์กฐ๊ฑด์—ฐ์‚ฐ์ž : ์กฐ๊ฑด์‹ ? ๊ฒฐ๊ณผ1 : ๊ฒฐ๊ณผ2

6. ์กฐ๊ฑด๋ฌธ
    - if๋ฌธ๊ณผ switch case๋ฌธ์ด ์กด์žฌ
    - if(์กฐ๊ฑด์‹1) {

      } else if (์กฐ๊ฑด์‹2) {

      } else {

      } 
    - switch(๋ณ€์ˆ˜) {
        case ์กฐ๊ฑด1 :
            ์‹คํ–‰๋ฌธ1
            break;
        case ์กฐ๊ฑด2 :
            ์‹คํ–‰๋ฌธ2
            break;
        default:
            ์‹คํ–‰๋ฌธ3;
      }

7. ๋ฐ˜๋ณต๋ฌธ
    - while, do while, for๋ฌธ์ด ์กด์žฌ
    - while(์กฐ๊ฑด์‹) {
        ์‹คํ–‰๋ฌธ;
      }
    - do {
        ์‹คํ–‰๋ฌธ;
      } while(์กฐ๊ฑด์‹);
    - for(์ดˆ๊ธฐ๊ฐ’; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) {
        ์‹คํ–‰๋ฌธ;
      }

8. ๊ฐ์ฒด
    - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋„ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

9. ๊ฐ์ฒด์˜ ์ข…๋ฅ˜
    - ๋‚ด์žฅ๊ฐ์ฒด : String, Date, Array, Math ๋“ฑ...
    - BOM(Browser Object Model) : ๋ธŒ๋ผ์šฐ์ €์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด
                                  window, screen, location, history, navigator ๋“ฑ...
    - DOM(Document Object Model) : HTML ๋ฌธ์„œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด
                                   HTML ํƒœ๊ทธ๋“ค์— ์ ‘๊ทผํ•˜์—ฌ ์ง์ ‘ ์กฐ์ž‘ ๊ฐ€๋Šฅ

10. ๋‚ด์žฅ๊ฐ์ฒด
    - Date : ํ˜„์žฌ ๋‚ ์งœ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด
    - Number : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ˆซ์ž๋ฅผ ํ‘œ๊ธฐํ•  ๋•Œ ์‚ฌ์šฉ
               ์ˆซ์ž์˜ ์†์„ฑ์ด๋‚˜ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ๊ฐ€๋Šฅ
    - Math : ์ˆ˜ํ•™๊ณผ ๊ด€๋ จ๋œ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด
    - Array : ํ•˜๋‚˜์˜ ๋ฐฐ์—ด ๋ชจ๋“  ๋ฐ์ดํ„ฐํ˜•์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
              ๊ธธ์ด๋„ ์ง€์ • ์•ˆ ํ•ด๋„ ๋œ๋‹ค.
              ๋ฐฐ์—ด ์„ ์–ธ ๋ฐฉ์‹
              1. var arr = new Array();
                 arr[0] = 1;
                 arr[1] = "ํ™๊ธธ๋™";
                 arr[2] = true;
              2. var arr = new Array(1, "ํ™๊ธธ๋™", true);
              3. var arr = [1, "ํ™๊ธธ๋™", true];
              ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ ์ ‘๊ทผ : arr[index]
    - String : ๋ฌธ์ž์—ด ๊ฐ์ฒด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋จ
               ๋ฌธ์ž์—ด ์„ ์–ธ
               1. var str = new String(๋ฌธ์ž์—ด);
               2. var str = "๋ฌธ์ž์—ด";

11. BOM(Browser Object Model)
    - window ์ตœ์ƒ์œ„ ๊ฐ์ฒด
    - window - document, screen, location, history, navigator
    - window์˜ ๋ฉ”์†Œ๋“œ
      1. window.open('url', ์ฐฝ์ด๋ฆ„, ์˜ต์…˜);
         ์ƒˆ ์ฐฝ์ด๋‚˜ ํŒ์—…์„ ๋„์šธ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ
      2. alert('๊ฒฝ๊ณ ๋ฉ”์‹œ์ง€'); 
         ์•Œ๋ฆผ์ฐฝ ๋„์›Œ์คŒ
      3. prompt('์งˆ์˜๋‚ด์šฉ', ์ดˆ๊ธฐ๊ฐ’);
         ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ฐฝ์„ ํ•˜๋‚˜ ๋„์›Œ์คŒ
      4. confirm('์งˆ์˜๋‚ด์šฉ');
         ํ™•์ธ์ฐฝ ๋„์›Œ์คŒ, ํ™•์ธ ํด๋ฆญ์‹œ true, ์ทจ์†Œ ํด๋ฆญ์‹œ false ๋ฐ˜ํ™˜
      5. setInterval/clearInterval
         setInterval์€ ํŠน์ • ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ๋™์ผํ•œ ๋™์ž‘ ์‹คํ–‰
         var interval = setInterval(function() {
                            ๋ฐ˜๋ณต๋  ๋™์ž‘;
                        }, ๋ฐ˜๋ณต ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ(ms));
         clearInterval์€ setInterval๋กœ ๋™์ž‘ํ•˜๋Š” ๋™์ž‘์„ ์ทจ์†Œํ•  ๋•Œ ์‚ฌ์šฉ
         clearInterval(์ธํ„ฐ๋ฒŒ ๋ณ€์ˆ˜ ๋ช…);
      6. setTimeout/clearTimeout
         setTimeout ํŠน์ •์‹œ๊ฐ„ ํ›„์— ๋™์ž‘์„ ํ•œ ๋ฒˆ ์‹คํ–‰์‹œํ‚ด
         var timeout = setTimeout(function() {
           ์‹คํ–‰๋  ๋™์ž‘
         }, ํŠน์ •์‹œ๊ฐ„(ms));
         clearTimeout์€ setTimeout์„ ํ•ด์ง€ํ•จ
         clearTimeout(ํƒ€์ž„์•„์›ƒ ๋ณ€์ˆ˜๋ช…);
         setTimeout์„ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ ์‹œ setInterval๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ

12. DOM(Document Object Model)
  - HTML๋ฌธ์„œ์— ์„ ์–ธ๋œ ํƒœ๊ทธ๋“ค์— ์ง์ ‘ ์ ‘๊ทผํ•˜์—ฌ ์กฐ์ž‘์ด ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด
  - ์„ ํƒ์ž์˜ ์ข…๋ฅ˜
    document.getElementById('์•„์ด๋””๋ช…') : ํƒœ๊ทธ์— ์ง€์ •๋œ ์•„์ด๋””๋กœ ์š”์†Œ๋ฅผ ์„ ํƒ
    document.getElementsByTagName('ํƒœ๊ทธ๋ช…') : ํƒœ๊ทธ๋ช…์œผ๋กœ ์š”์†Œ๋ฅผ ์„ ํƒ
    document.getElementsByClassName('ํด๋ž˜์Šค๋ช…') : ํƒœ๊ทธ์— ์ง€์ •๋œ ํด๋ž˜์Šค๋กœ ์š”์†Œ๋ฅผ ์„ ํƒ
  - css ์ ์šฉ๋ฒ•
    document.์„ ํƒ์ž.style.์†์„ฑ = ์†์„ฑ๊ฐ’;
  - ์š”์†Œ์˜ ์†์„ฑ ๊ฐ’ ๋ณ€๊ฒฝ ๋ฐ ์ƒ์„ฑ
    ์š”์†Œ์„ ํƒ.์†์„ฑ๋ช…; : ํ˜„์žฌ ์†์„ฑ์— ์ง€์ •๋œ ๊ฐ’ ๋ถˆ๋Ÿฌ์˜ด
    ์š”์†Œ์„ ํƒ.์†์„ฑ๋ช… = ๊ฐ’; : ์š”์†Œ์˜ ์†์„ฑ์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„ฃ์–ด์คŒ
    ์š”์†Œ์„ ํƒ.getAttribute('์†์„ฑ') : ํ˜„์žฌ ์†์„ฑ์— ์ง€์ •๋œ ๊ฐ’ ๋ถˆ๋Ÿฌ์˜ด
    ์š”์†Œ์„ ํƒ.setAttribute('์†์„ฑ', '๊ฐ’') : ์š”์†Œ์˜ ์†์„ฑ์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„ฃ์–ด์คŒ
    ์š”์†Œ์„ ํƒ.innerHTML; : ์„ ํƒ๋œ ์š”์†Œ์˜ ๋ชจ๋“  ํ•˜์œ„์š”์†Œ๋“ค์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜
    ์š”์†Œ์„ ํƒ.innerHTML = ์ƒˆ์š”์†Œ; : ์„ ํƒ๋œ ์š”์†Œ์˜ ํ•˜์œ„์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ์š”์†Œ ์ถ”๊ฐ€
  - ์ด๋ฒคํŠธํ•ธ๋“ค๋Ÿฌ
    ์š”์†Œ์„ ํƒ.์ด๋ฒคํŠธ์ข…๋ฅ˜ = function() {
      ์‹คํ–‰๋ฌธ;
    }
    onclick, onmouseover, onmouseout, submit

LIST