JavaScript: VanillaJs-DOM-#2-foreach

    JavaScript: VanillaJs-DOM-#2-foreach

    2022, Apr 10    

    ๋ฐ์ดํ„ฐ

    ์—ฐ์‚ฐ์ž

            var x = 3;
            var y = 3;
            
            // '==' x,y ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฐ’์˜ ๋น„๊ต
            // '===' x, y๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋ฐ•์Šค(์ฃผ์†Œ)์˜ ๋น„๊ต
            document.write(x == y); //true
            document.write(x === y);//true
            
            //์˜์™ธ๋กœ ๊ฐ’๊ณผ ์ฃผ์†Œ์˜ ๋น„๊ต๊ฒฐ๊ณผ๊ฐ€ ๋ชจ๋‘ true, ์ฃผ์†Œ๋Š” ๋‹ค๋ฅผ ๊ฒƒ์ด๋ผ ์˜ˆ์ƒํ–ˆ์Œ.
            //๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค๋ฅธ ๋ฐ•์Šค(์ฃผ์†Œ)์— ๋‹ด๊ณ ์‹ถ์„ ๋•Œ๋Š”?
            var y = new Number(3);
            document.write(x == y); //true 
            document.write(x === y);//false
    
            //๋‹ค๋ฅธ ํ˜•์— ๋Œ€ํ•œ ์—ฐ์‚ฐ
            // '-' ์—ฐ์‚ฐ์ž : ์ˆซ์ž, ๋ฌธ์ž => ์ˆซ์ž์—ฐ์‚ฐ = 1
            // - ์—ฐ์‚ฐ์ž๋Š” ์ˆซ์ž๋กœ ๋ณ€ํ™˜
            document.write(3-"2");
            document.write("<br />");
            document.write("3"-2);
            document.write("<br />");
            document.write("3"-"2");
            document.write("<br />");
            
            // '+' ์—ฐ์‚ฐ์ž : ์ˆซ์ž, ๋ฌธ์ž => ๋ฌธ์ž์—ฐ์‚ฐ = 32
            // + ์—ฐ์‚ฐ์ž๋Š” ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
            document.write(3+"2");
            document.write("<br />");
            document.write("3"+2);
            document.write("<br />");
            document.write("3"+"2");
    

    ์ œ์–ด๊ตฌ์กฐ

    ์กฐ๊ฑด๋ฌธ : if, while, do-while
    ๋ฐ˜๋ณต๋ฌธ : while, for, for-in
    ์„ ํƒ๋ฌธ : else, else if, switch

    ๋ฐ˜๋ณต๋ฌธ : foreach

    arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])
    callback
    ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์‹คํ–‰ํ•  ํ•จ์ˆ˜. ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
    currentValue
    ์ฒ˜๋ฆฌํ•  ํ˜„์žฌ ์š”์†Œ.
    index Optional
    ์ฒ˜๋ฆฌํ•  ํ˜„์žฌ ์š”์†Œ์˜ ์ธ๋ฑ์Šค.
    array Optional
    forEach()๋ฅผ ํ˜ธ์ถœํ•œ ๋ฐฐ์—ด.
    thisArg Optional
    callback์„ ์‹คํ–‰ํ•  ๋•Œ this๋กœ ์‚ฌ์šฉํ•  ๊ฐ’.

    
            //๋ฐฐ์—ด ๋ฐ์ดํ„ฐ์˜ ์ผ๋ฐ˜์ ์ธ ๋ฐ˜๋ณต๋ฌธ
            var ar = ["hello","hi","greeting","bye"];
            for(var i=0; i<ar.length; i++){
                document.write(ar[i]+", ");
            }
    
            document.write("<br />");
            document.write("<br />");
            document.write("foreach just start <br />");
            ar.forEach(function(el){
                document.write(el+", ");
            });
            //๊ฒฐ๊ณผ : hello, hi, greeting, bye,
    
            document.write("<br />");
            document.write("<br />");
            document.write("foreach func start <br />");
            ar.forEach(function(el, i, arr){
                document.write("el : "+el+", ");
                document.write("<br />");
                document.write("index : "+i+", ");
                document.write("<br />");
                document.write("arr : "+arr+", ");
                document.write("<br />");
                document.write("<br />");
            });
    
            document.write("<br />");
            document.write("<br />");
            document.write("foreach lamda start <br />");
            ar.forEach((el,i,arr) => {
                document.write("el : "+el+", ");
                document.write("<br />");
                document.write("index : "+i+", ");
                document.write("<br />");
                document.write("arr : "+arr+", ");
                document.write("<br />");
                document.write("<br />");
            });
            /**
             * ๊ฒฐ๊ณผ
             * el : hi,
             *index : 1,
             *arr : hello,hi,greeting,bye,
             * 
             *el : greeting,
             *index : 2,
             *arr : hello,hi,greeting,bye,
             * 
             *el : bye,
             *index : 3,
             *arr : hello,hi,greeting,bye,
             */
    
            var list = ['a', 'b', 'c'];
            var test = function(el,i,arr){console.log(el+this.arg)};
            list.forEach(test,{arg:10});
            > "a10"
            > "b10"
            > "c10"
    
    
    ๋ฐ˜๋ณต๋ฌธ : for-in
            /**
             * for-in
             *  ์œ„์˜ foreach๋Š” ๊ฐ’์„ ๋ฐ”๋กœ ๋งคํ•‘ํ•ด์ค˜ ๊ทธ๋ƒฅ ์“ฐ๋ฉด๋๋‹ค.
             *  for-in์€ ์™œ ์ธ๋ฑ์Šค๋ฅผ ํ• ๋‹นํ•˜๋Š”๊ฑฐ์ง€ ๊ท€์ฐฎ๊ฒŒ?
             *  ๋ฐฐ์—ด์ผ ๋•Œ๋Š” ๊ฐ’์„ ๋งคํ•‘ํ•ด์ฃผ๋ฉด ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๋‚˜ object์ฒ˜๋Ÿผ key:value ํ˜•ํƒœ๋Š” ๊ฐ’์„ ๊บผ๋‚ด๊ธฐ๊ฐ€ ๊นŒ๋‹ค๋กญ๋‹ค.
             *  for-in์„ ์‚ฌ์šฉํ•˜๋ฉด index ๋˜๋Š” key ํ˜•ํƒœ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
             */
            var ob = {id:1,title:"hello",writeId:"newlec"};
            for (const i in ob) {
                document.write(i+" : "+ob[i]+", "); //๊ฒฐ๊ณผ : id : 1, title : hello, writeId : newlec 
                document.write("<br/ >");
            }