JavaScript: VanillaJs-DOM-#1-Basic

    JavaScript: VanillaJs-DOM-#1-Basic

    2022, Mar 30    

    Goal of learning

    Script language์˜ ๊ธฐ๋ณธ์ธ Javascript์˜ ๋ฐ”๋‹๋ผJS์˜ ๊ฐœ๋…, ๊ตฌ์กฐ ๋“ฑ์„ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜์—ฌ ํ•œ์ค„์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•จ์—๋„ ์œ ์˜๋ฏธํ•˜๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ข‹์€ ์ฝ”๋“œ, ์ฆ‰ ๊ธฐ๋Šฅ์„ฑ,ํšจ์œจ์„ฑ ํ˜‘์—…์„ ๊ณ ๋ คํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์— ๋ชฉํ‘œ๋ฅผ ๋‘”๋‹ค. ์ดํ›„, ๊ฐ์ฒด์ง€ํ–ฅ๊ณผ ES6 ๋“ฑ ํ•™์Šต๋ฒ”์œ„๋ฅผ ๋„“ํžˆ๊ณ  ์ƒˆ๋กœ์šด ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ ํ™•๋Œ€ํ•˜๊ธฐ๋กœ ํ•œ๋‹ค.

    ํ™˜๊ฒฝ์ค€๋น„

    • vscode
    • chrome
    • live server

    ๋ฐ์ดํ„ฐ

    ๋ณ€์ˆ˜ ํ‚ค์›Œ๋“œ var

    var x = 3;          //์ •์ˆ˜
    var x = 3.6;        //์‹ค์ˆ˜
    var x = 'A';        //๋ฌธ์ž
    var x = "Hello";    //๋ฌธ์ž์—ด
    

    ํƒ€์ž…์€ ์ตํžˆ ์•Œ๊ณ ์žˆ์–ด ๋„˜์–ด๊ฐ„๋‹คํ•˜๋”๋ผ๋„ ๊ถ๊ธˆํ•œ๊ฒŒ ํ•˜๋‚˜ ์ƒ๊ธด๋‹ค.
    ์–ด๋–ป๊ฒŒ ๋ณ€๋™๋˜๋Š” ํƒ€์ž…์— ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›๋Š”๊ฑฐ์ง€?
    => ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ์‹œ ๊ณต๊ฐ„์„ ๋งˆ๋ จํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜๋Š” ์ฐธ์กฐ๋ณ€์ˆ˜๋กœ ๊ฐ’์ด ํ• ๋‹น๋˜๋Š” ์‹œ์ ์— ๊ณต๊ฐ„์„ ๊ฐ–๋Š”๋‹ค. ์ด๋ฅผ โ€˜Auto Boxingโ€™์ด๋ผ ํ‘œํ˜„ํ•œ๋‹ค.
    ํฌ์ธํ„ฐ(์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜)๊ฐ€ ์•„๋‹Œ ์ฐธ์กฐ(reference)๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
    ๊ฐ•์•„์ง€์—๊ฒŒ ๊ฐ•์•„์ง€๋ผ ๋ถ€๋ฅด์ง€ ์•Š๊ณ  ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณ€์ˆ˜๋Š” ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๊ฒƒ. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜๋Š” ๋ชจ๋‘ ์ฐธ์กฐ๋ณ€์ˆ˜์ด๋ฉฐ Wrapper class๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

    //๋ณ€์ˆ˜ ์„ ์–ธ์— ๋Œ€ํ•œ ํ‘œํ˜„์œผ๋กœ ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ํ‚ค์›Œ๋“œ์ธ new๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
    //JS์˜ ์œ ์—ฐํ•จ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
    var x = 3;
    var x = new Number(3);
    

    ์œ„์˜ ์ฝ”๋“œ๋ฅผ ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด์—์„œ๋Š” ๋ณ€์ˆ˜x์— 3์„ ํ• ๋‹นํ–ˆ๋‹ค. ํ˜น์€ 3์œผ๋กœ ์„ ์–ธํ–ˆ๋‹ค. ์ดˆ๊ธฐํ™”ํ–ˆ๋‹ค. ํ‘œํ˜„ํ•˜์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” 3์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธด wrapper class๋ฅผ x ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ฐธ์กฐํ•œ๋‹ค. ๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š”๊ฒŒ ์˜ฌ๋ฐ”๋ฅด๋‹ค. ํƒ€์ž…์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ๊ฒฐ์ •ํ•œ๋‹ค. ํ•ด๋‹น ํƒ€์ž…์„ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•ด typeof ์—ฐ์‚ฐ์ž๋ฅผ ์“ด๋‹ค. JS์˜ ์œ ์—ฐ์„ฑ์€ ์žฅ์ ์ด๋ฉด์„œ ๋™์‹œ์— ๋‹จ์ ์ด ๋œ๋‹ค. ์–ด๋–ค ํƒ€์ž…์˜ ๋ณ€์ˆ˜์ธ๊ฐ€์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

    Array ๊ฐ์ฒด

    //push, pop method๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ : stack
    var nums = new Array();
    nums.push(5);
    nums.push(10);
    nums.push(20);
    /*
        ์ ์žฌ(stack) ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์Œ“์ž„.
        20
        10
        5
        pop์„ ์ด์šฉ, ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋ฉด ์ ์žฌ๋œ ์ตœ์‹  ์ˆœ์„œ๋ถ€ํ„ฐ ๊บผ๋‚ด์˜ค๋ฉฐ ๊บผ๋‚ธ ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ๋ผ์ง„๋‹ค.
     */
    var n1 = nums.pop(); // 20
    var n2 = nums.pop(); // 10
    var n3 = nums.pop(); // 5
    
    //index๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ๊ด€๋ฆฌ : List
    var nums = new Array();
    nums[0] = 5;
    nums[1] = 10;
    nums[2] = 20;
    //pop๊ณผ ๋‹ฌ๋ฆฌ ๊ฐ’์„ ๊บผ๋‚ด๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค.
    alert(nums[0]);//5
    
    /*
        ๋ฐฐ์—ด ์„ ์–ธ๋ฐฉ๋ฒ•
        ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชฉ๋กํ™” ํ•˜๋Š”๋ฐ,
        JS๋Š” ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
        ๋‹จ์ผํ•œ ๊ฐ’์œผ๋กœ ์ œํ•œํ•˜์ง€ ์•Š์•„ ๋ฐฐ์—ด ๋‚ด ๋ฐฐ์—ด๋„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.
     */
    var num = new Array(5); //5๊ฐœ์˜ ๊ณต๊ฐ„
    var num = new Array(5,10,21); //3๊ฐœ์˜ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ
    var num = new Array(5,10,21, "hello"); //ํƒ€์ž…์ฒดํฌ๋Š” typeof๋ฅผ ์ด์šฉ** 
    var num = new Array(5,10,21, "hello", new Array(2,3,4)); 
    nums[4][1]; // ๋ฐฐ์—ด ๋‚ด ๋ฐฐ์—ด์˜ ๋ฐ์ดํ„ฐ ํ˜ธ์ถœ ์‹œ : 3
    
    //splice() ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ : List
    var nums_splice = new Array(5,10,21,"hello", 33, 44, 55);
    
    //(n) index n ์ดํ›„ ๊ฐ’ ์‚ญ์ œ
    nums_splice.splice(1); 
    
    //(n,m) index n๋ฒˆ์งธ ๋ถ€ํ„ฐ m๊ฐœ ์ธ์ž ์‚ญ์ œ
    nums_splice.splice(3,4); 
    
    //(n,m,a) index n๋ฒˆ์งธ ๋ถ€ํ„ฐ m๊ฐœ ์ธ์ž ์‚ญ์ œํ•˜๊ณ  n๋ฒˆ์งธ index์— a๊ฐ’ ์ถ”๊ฐ€
    nums_splice.splice(2,0,"hi"); 
    console.log(nums_splice);
    

    Object ๊ฐ์ฒด

    /* 
        ์ž๋ฐ”์—์„œ ํด๋ž˜์Šค์™€ ๊ฐ์ฒด(Object) ์ธ์Šคํ„ด์Šค ์ฐจ์ด
        1. ํด๋ž˜์Šค ์ƒ์„ฑ(์ •์˜) 
        2. ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ƒ์„ฑ 
        3. ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ(๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น) 
     */
     public class Animal {
     ...
     }
     //๊ฐ์ฒด์™€ ์ธ์Šคํ„ด์Šค
     public class Main {
         public static void main(String[] args) {
             Animal cat, dog; // '๊ฐ์ฒด'
    
             // ์ธ์Šคํ„ด์Šคํ™”
             cat = new Animal(); // cat์€ Animal ํด๋ž˜์Šค์˜ '์ธ์Šคํ„ด์Šค'(๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น)
             dog = new Animal(); // dog์€ Animal ํด๋ž˜์Šค์˜ '์ธ์Šคํ„ด์Šค'(๊ฐ์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น)
         }
     }
    
    /* 
        ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ๊ฐ์ฒด
        1. ๊ฐ์ฒด ์ƒ์„ฑ
        2. ๊ฐ์ฒด ์ •์˜
        Javascript  - prototype(JS๊ฐ์ฒด์ง€ํ–ฅ ๊ณต๋ถ€ํ•  ๋•Œ ์„ค๋ช…)
                    - class(ES6๋ฒ„์ „ ์ด์ƒ์ผ ๋•Œ ์„ค๋ช…)
    
        JS๋Š” ๋งจ๋•…์— ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.(์ƒ์„ฑ)
        ํ•„์š”ํ•œ ์†์„ฑ์ด ์žˆ์œผ๋ฉด ๊ฐ์ฒด์— ๊ธฐ๋Šฅ์„ ๋ถ™์ธ๋‹ค.(์ •์˜)
        ๋•Œ๋ฌธ์— ๋™์ ์ธ ๊ฐ์ฒด๋ผ๊ณ  ํ•จ(์ƒ์„ฑ ํ›„ ์ •์˜)
     */
    
    //๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์—ˆ์ง€๋งŒ ์•„๋ฌด๋Ÿฐ ์†์„ฑ์ด ์—†์Œ.
    var exam = new Object();
    
    //1. ์†์„ฑ์ •์˜ : '.' ์ด์šฉํ•˜์—ฌ ์†์„ฑ์ •์˜(=expand object)
    exam.kor = 30; 
    exam.eng = 70;
    exam.math = 80;
    
    exam.kor = 20;
    console.log(exam.kor + exam.eng);
    
    //2. ์†์„ฑ์ •์˜ : '[ ]'
    exam["jpn"] = 50;
    var key = "jpn";
    
    /*
        []๋‚ด์˜ ๊ฐ’์€ ๋ฌธ์ž์—ด. exam.jpn ์œผ๋กœ๋Š” ๊บผ๋‚ผ ์ˆ˜ ์—†๋‹ค.
        exam์˜ '์†์„ฑ'์„ '๋ณ€์ˆ˜'๋ฅผ ํ‚ค๋กœ ์‚ฌ์šฉํ•ด์„œ ๊บผ๋‚ผ ๋•Œ๋Š”
        '.' ๋ฐฉ์‹์œผ๋กœ ๋ถˆ๊ฐ€ํ•˜๋ฉฐ '[]' ๋ฐฉ์‹์œผ๋กœ ๊บผ๋‚ด์•ผ ํ•œ๋‹ค.
        ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ๊ฐ’์„ ๊บผ๋‚ผ ๋•Œ๋Š” ๋ฌด์กฐ๊ฑด '.'๋ฅผ ์ด์šฉํ•œ๋‹ค.
     */
    console.log(exam[key]); //50 ์ •์ƒ์ถœ๋ ฅ
    console.log(exam.key);  //undefined
    
    /*
        ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜(์ถ”๊ฐ€ ์„ค๋ช… ํ•„์š”)
            var   : ํ•จ์ˆ˜๋ฒ”์œ„ ๋ณ€์ˆ˜
            let   : ๋ธ”๋ก๋ฒ”์œ„ ๋ณ€์ˆ˜
            const : ์ƒ์ˆ˜ ๋ณ€์ˆ˜
            
        ๋ฐ์ดํ„ฐ๋ฅผ ๋ชฉ๋กํ™”
            ์„ ํ˜•(=Array)
            ๋งตํ˜•(=Map)
                JAVA    : Mapํ˜•(์ปฌ๋Ÿผ๋ช…์œผ๋กœ ๋ฐ์ดํ„ฐ๊ตฌ๋ถ„)์ปฌ๋ ‰์…˜, ์„ ํ˜•(Listํ˜•)์ปฌ๋ ‰์…˜
                ์ž๋ฃŒ๊ตฌ์กฐ : Hashํ˜•(์‹๋ณ„์ž)
                JS      : Object(=Mapํ˜•), ์„ ํ˜•(=Array))
     */
    

    ๋ฐ์ดํ„ฐ๊ฐ์ฒด์™€ JSON ์ƒ์„ฑ ๋ฐฉ๋ฒ•

    /*
        Javascript Obejct
        ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ฐ’์„ '๋Œ€์ž…'ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
        ์•„๋ž˜์™€ ๊ฐ™์ด wrapper class๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ฐธ์กฐํ•˜๋„๋ก ๋˜์–ด์žˆ๋‹ค.
        ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ๋ถˆํŽธํ•œ ๋ฐฉ์‹์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋งค๋ ฅ์ ์ด์ง€ ์•Š๋‹ค.
     */
    var n = new Boolean(true);
    var n = new Number(3);
    var s = new String("hello");
    var ar = new Array();
    var ob = new Object();
    
    //์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋„๋ก Javascript Object Notaion(Json)ํ‘œ๊ธฐ๋ฒ•์ด ์ ์šฉ๋œ๋‹ค.
    var n = true;
    var n = 3;
    
    /*
        ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฌธ์ž์—ด์„ ํ‘œํ˜„ํ•  ๋•Œ "" ๋ณด๋‹ค ''์œผ๋กœ ๋งŽ์ด ์“ด๋‹ค.
        html๋‚ด์— ํฌํ•จ๋˜๋Š” ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์„œ์˜ "" ์•ˆ์— ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ  
        ""๊ฐ€ ์ค‘์ฒฉ๋œ๋‹ค๋ฉด ์ถฉ๋Œ์ด ๋ฐœ์ƒˆ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
     */
    var s = "hello";
    var s = 'hello';
    var msg = "alert("์•ˆ๋…•");"; //์ถฉ๋Œ
    
    var exam = {}; //Object ์„ ์–ธ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•
    exam.kor = 20; //์„ ์–ธ ํ›„ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•-1
    var exam = {"kor":30, "eng":40,"math":50}; //์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๋ฅผ ๋™์‹œ์— ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
    var ar = [3,4,5,6,exam,[7,8,9]]; //๋ฐฐ์—ด๋„ json ํ‘œ๊ธฐ๋ฒ•
    console.log(ar[5][1]); //๋ฐฐ์—ด ๋‚ด ๋ฐฐ์—ด ์ถœ๋ ฅ
    console.log(ar[4].math); //๋ฐฐ์—ด ๋‚ด ๊ฐ์ฒด ์ถœ๋ ฅ
    

    ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œํ˜„๋ฒ•

    • xml : ํƒœ๊ทธํ˜•์‹
    • csv : ์ฝค๋งˆ ๊ตฌ๋ถ„๋ฒ•
    • json : ์•„๋ž˜ ์„ค๋ช…

    Json์˜ ์ค‘์ฒฉํ‘œํ˜„

    //json์€ ์ค‘์ฒฉ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋„ ์‰ฝ๊ฒŒ ํ‘œํ˜„ ๊ฐ€๋Šฅ
    var notices = [{"id":1, "title":"hello1"},
                    {"id":2, "title":"hello2"},
                    {"id":3, "title":"hello3"}];
    //๋‘๋ฒˆ์งธ ๊ฐ์ฒด ๋ฐ์ดํ„ฐ ํ˜ธ์ถœ EZ
    console.log(notices[1].title);
    
    //์ด์Šˆ์ƒํ™ฉ : ์™ธ๋ถ€์—์„œ ๋„˜๊ฒจ๋ฐ›์€ Json์€ ๋ฌธ์ž์—ด๋กœ ๊ฐ์‹ธ์ง„๋‹ค.
    var noticetest = '{"id":3, "title":"hello3"}';
    
    //๋ฌธ์ž์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ํ˜ธ์ถœ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.
    console.log(noticetest.title);
    
    /*
        eval() ํ•จ์ˆ˜ : ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„๋œ JS์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜
        *๊ฐ€๊ธ‰์  ์‚ฌ์šฉ์„ ์ง€์–‘ํ•œ๋‹ค.(์ฐธ์กฐ-์ฐธ๊ณ ์‚ฌํ•ญ : eval์€ evil)
     */
    eval('var x = 30');
    console.log('x : '+x); //30
    
    var notices1 = '[\
                        {"id":1, "title":"hello1"},\
                        {"id":2, "title":"hello2"},\
                        {"id":3, "title":"hello3"}\
                    ]';
    eval("var ar_noti = "+notices1+";");
    console.log(ar_noti[1].id);
    
    /*
        json parser
            eval์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๋Š” ์—ญํ• ์ผ ๋ฟ
            json์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋Š” ์•„๋‹ˆ๋‹ค. 
            json ๋ฐ์ดํ„ฐ๊ฐ์ฒด๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” json parser๊ฐ€ ์žˆ๋‹ค.
            json.parse๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์†์„ฑ๋ช…์„ ๋ฌธ์ž์—ด("")๋กœ ๊ฐ์‹ธ์•ผํ•œ๋‹ค
        
        json ํ‘œ๊ธฐ๋ฒ•++ 
            ์†์„ฑ๋ช…์„ ๋ฌธ์ž์—ด ํ‘œํ˜„ํ•˜๊ฑฐ๋‚˜ or ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
            ํ•˜์ง€๋งŒ ์œ ํšจํ•˜์ง€ ์•Š์€ ์†์„ฑ๋ช…์ธ ๊ฒฝ์šฐ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
            {"id":1, "title-2":"hello"}
     */
    var data = JSON.parse('{"id":1, "title":"hello1"}');
    console.log(data);
    
    //๋ฐ˜๋Œ€๋กœ json์„ ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์•ผํ•  ๋•Œ๋„ ์žˆ๋‹ค.
    var data2 = {id:2, title:"hello2"};
    
    var json = JSON.stringify(data2);
    console.log(json);
    

    ์ฐธ๊ณ ์‚ฌํ•ญ