[대구시/MS 협력 개발일지5일차] JavaScript 기초실습(2022.03.25)

> 1. 학습한 내용

  • document.write -> 웹페이지 상에 출력
    console.log -> console 창에 출력
  • 버튼의 약자는 'input'
    (참고) shift+enter -> console 창에서 줄내려가기 시 사용
  • `if(this.value === 'night'){ // 비교 연산자
    document.querySelector('body').style.color="white";
    document.querySelector('body').style.backgroundColor='black' ;
    this.value = 'day' ; // ->대입 연산자, 오른쪽의 수치가 왼쪽의 변수가 되는 것}~
  • 객체와 배열은 무엇인가?
    `

    Array + Loop

        <script>
            var topics = ['html', 'css', 'js'] ;
            for(let i=0 ; i<topics.length ; i=i+1 ){
                console.log('i=>', topics[i]);
                document.write('<li>'+topics[i]+'</li>'); // li 태그 만들고 싶을때 식/ 태그로 감싸기 -> +( )+
            }
        </script>
    <script>
       let topics2 = ['html', 'css', 'js'] //[]는 배열, 배열의 이름을 정해주고, let(첫 설정,선언)
       for(let i=0;i<topics2.length;i=i+1){
           console.log(topics2[i]);
           // document.write('<li>' + topics2[i] + '</i>') 밑에 것이랑 같은 것.
            document.write(`<li>${topics2[i]}</li>`) 
       }
    </script>
  • 객체지향
    ->객체 지향은 서로 연관된 변수와 함수를 그룹핑에서 이름을 붙인것(첫인상으로 요렇게 이해할 것)
    `

      <h1>Object</h1>
      <script>
          let student = ['kasumigaoka', 'Kato'] ; // 배열, 배열에선 각각의 데이터를 '인덱스'로 식별. 인덱스로 식별되는 '객체'인것, 순서를 가지고 저장할때는 배열사용.
          console.log(student[0], student[1]);// 배열의 값을 꺼낼 때.
    
          //let member = ['kasumigaoka', 'Michiru']; // 객체에 이름을 붙일 수 있음(객체는)
          //console.log(member[0], member[1]);// 이 상태로는 각 데이터의 성질은 알 수가 없음.
    
          let member = {developer : 'kasumigaoka', designer : 'Michiru'}; // 객체 표시는 {} 사용, 헷갈리지 말것.
          console.log(member.developer, member.designer);
    
          let person = {name:'kasumigaoka', city:'Tokyo', job:'writer'};//순서없이 이름을 저장할때는 객체를 사용.
          console.log(person.name, person.city, person.job);
    
          let MyMath = {}
          MyMath.Pi = 3.14;
          MyMath.sum = function(val1,val2){
              return val1+val2;
          }
          console.log(MyMath.Pi);
          console.log(MyMath.sum(10,20));
      </script>
  • 함수
    ->내장함수 : 크롬에 '내장'되어 있는 함수. 크롬 개발자가 만듦 built-in-function
    함수는 서로 연관된 코드를 모아서 grouping한 정리정돈의 상자다/ grouping 해서 이름을 붙인것 -> 이라고 생각해볼것.
    함수 설정해놓으면 무수히 많은 코드가 있다고 하더라도 함수 하나의 설정에 담아놓은 코드만 수정해주면 한꺼번에 모든 코드와 내용, 성질이 수정됨.
    장점 : 코드가 간결해진다./가독성이 좋아진다./함수부분을 통해 모든 곳에서 동시에 수정이 일어난다.->유지보수가 편해진다.
    `

    <script>
        function night(){
            document.querySelector('body').style.backgroundColor = 'black';
            document.querySelector('body').style.color = 'white';
            let as = document.querySelectorAll('a');
            for(let i=0; i<as.length;i=i+1){ // i=i+1 대신 i++ 써도 됨.
                as[i].style.color = 'white' ;
            }
        }
        function day(){
            document.querySelector('body').style.backgroundColor = 'white';
            document.querySelector('body').style.color = 'black';
            let as = document.querySelectorAll('a');
            for(let i=0; i<as.length;i=i+1){ // i=i+1 대신 i++ 써도 됨.
                as[i].style.color = 'black' ;
            }
        }
    </script>
    <input type="button" id="dnbtn" value="night" onclick="
        let button = document.querySelector('#dnbtn') ; // 이거를 this 로 바꿔도 똑같이 동작(this는 )
        if(button.value === 'night') {
            night();
            button.value = 'daylight';
        } else {
            day(); 
            button.value = 'night' ;
        }
    ">`

    호출되는 코드 ~() ->'~'는 실행값,()는 계산하는 값
    정의하는 코드 function ~(){} -> {}명령하는 내용
    중간중간에 다른 많은 코드와 기능이 섞여 있을때, 비슷한 혹은 같이 움직이는 것들 끼리 묶어서 function으로 함축한다.
    매개변수를 여러개를 달아서 여러개의 입력값을 출력할 수 있게됨.
    함수의 return 값이 함수의 값이 됨. 그 함수의 실행값이 됨. -> 함수의 값이 확정됨. 따라서 바로 뒤에 코드를 넣어봤자 실행이 안됨.

  • 캡쳐자료

> 2. 어려웠던 내용들

  • '객체'에 관한 부분이 전반적으로 이해가 잘 되지 않음.
  • function(함수) 부분의 return의 기능(무엇을 의미하고 어떤 동작이 필요해서 이걸 집어 넣었는지)이 잘 이해가 가지 않음.

> 3. 해결방법

  • 강의와 자료를 검색하여 내용을 정리함.
  • 직접 새로운 html파일을 만들어서 이것저것 넣어보며 시도를 함.

> 4. 학습소감

앞의 몇일들에 비해 보다 이해력이 올라갔고, 스스로 찾아보는 것에 대한 재미가 더욱 증가했음. 배운 내용을 가지고 나만의 정보창고를 세계적인 검색엔진들과 나란히 할 수 있을 정도로 만들고 싶어지는 욕구가 더욱 커짐. 무한히 커져가는 정보의 창고, 옛 바빌론의 보물창고와 같은, 그러한 것을 조금씩 만들어가고 싶음. 허왕된 얘기일지도 모르지만, 만일 우리 이외의 우주의 생명체들과 교류하게 될 시, 그런 우주의 정보들을 전부 담고 있는 무언가를 이 코딩을 기초로 만들어 낼 수 있다고 생각하면 정말 두근두근하다고 밖에 할 말이 없음. 힘내보자! 나 자신!

좋은 웹페이지 즐겨찾기