본문 바로가기

독학

♧9/26 생활코딩 [자바스크립트] (배열과 반복문결합, 주간모드 야간모드 글자와배경색토글, 함수의정의, 함수를이용한밤낮토글 정리)

<배열과 반복문 결합>



<li>이고잉</li>
<li>리체</li>

와 같은 고생을 줄이는 코드.

<body>
    <h1>Loop & Array</h1>
    <script>
        var coworers = ['egoing','leezche', 'duru', 'taeho'];
    </script>
    <h2>co workers</h2>
    <ul>
       <script>
                    var i = 0;
                
        while(i < 4){
            document.write('<li></li>');
        i = i+1
        }
        
       </script>
    </ul>
</body>


이제 코 워커스 이고잉 리체 저 사람들 이름들을 반복문이 실행될 떄마다 하나하나 가져오는 작업을 해보자.













<body>
    <h1>Loop & Array</h1>
    <script>
        var coworkers = ['egoing','leezche', 'duru', 'taeho'];
    </script>
    <h2>co workers</h2>
    <ul>
       <script>
                    var i = 0;
               
        while(i < 4){

            document.write('<li>'+coworkers[i]+'</li>');

        i = i+1
        }
       
       </script>







결과





===> 반복문이 실행 될 때마다 이고잉=i 0, 리체 =i 1 이런식으로 되는거니까!











코드를 너 완벽하게 만들어보자.

한놈을 더 추가해도 추가 수정 없이 바뀔 수 있도록.






프로그래머의 수치 : 데이터가 바뀌었다고 로직을 바꾸는 것. 유연하게 바뀌는 코드를 만들어보자.











이 곳에 적합한 코드를 넣는 것이 관건이다 . 그것은 바로바로






<body>
    <h1>Loop & Array</h1>
    <script>
        var coworkers = ['egoing','leezche', 'duru'];
    </script>
    <h2>co workers</h2>
    <ul>
       <script>
                    var i = 0;
                
        while(i <coworkers.length){
            document.write('<li>'+coworkers[i]+'</li>');
        i = i+1
        }
        
       </script>
    </ul>
</body>



요것임. 태호 빠져도, 누굴 넣어도 잘 작동.














<똑같은 방식으로 링크 추가>

<script>
                    var i = 0;
                
        while(i <coworkers.length){
            document.write('<li><a href="ex7.html/'+coworkers[i]+'">'+coworkers[i]+
                '</a></li>');
        i = i+1
        }
        
       </script>











어떻게 하면 이 코드를 실용적이게 써먹을까?



-> 전에 만들었었던 주간모드, 야간모드 코드에 넣어보자.
야간모드일 때는 링크들이 밝게, 주간모드일 때엔 어둡게. (배경색에따라~)
만들어보자.




코드

<input id="night_day" 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;
    }
    }
    ">



결과

(빨간놈은 무시,, 전에  쓴 코드임)





아유아유. 힘들어 중괄호 하나를 빼먹어서 또 한참찾았엉.









<함수>


함수 = 코드가 많아질 때 정리정돈 할 도구중 하나.









<함수를 이용해 위 밤낮 토글을 간단하게 만들어보자>



1. 일단 밑에 코드 잘라내기





2, 스크립트 태그 생성 후 안에 잘라놨던 코드 붙여넣기









3.

<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>

함수 (function) , 이름, 셀프까지 넣어주고
this 였던 곳들 다 self로 바꾸어주고







4.

<body>







  <input id="night_day" type="button" value="night" onclick="
nightDayHandler(this)
">

<input id="night_day" type="button" value="night" onclick="
nightDayHandler(this)
">


-바디태그에 남겨져있던 저 부분에

 
nightDayHandler(this)
  
 
self 말고 this 로 복붙해주면 끝. 실행은 똑같은 모양으로 되는 것 같지만 동작방식은 전혀 다른 완전히 실용성있는 코드가 되었다. 
 

nightDayHandler(this) <- 요 부분이 이렇게 한줄로 줄었음으로인해 웹페이지의 용량도 줄고, 유지보수도 쉬워졌음.

















오늘공부 끝! 다음시간엔 함수의 이론에 대해서 알아보겠습니다.