ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • js 스크립트 코드의 지역화
    javascript ES5 정리 2020. 9. 23. 12:36

    개발자는 항상 가독성이 좋은 코드를 작성해야한다.

     

    아래의 코드를 보자

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
            function add(){
                 var a=3;
                 var b=4; 
                 btnprint.value=a+b;
                  update = document.getElementById("update");
                  update.innerText = a+b;
             }
             function init(){
                btnprint = document.getElementById("btn-print");
                btnprint.onclick = add;
            }
            window.onload = init;
          </script>
    </head>
    <body>
        
        <input type="button" value="클릭" id="btn-print"/></br>
        <span id="update">하이요</span>
    </body>
    
    </html>

     

    init함수를 보면 btnprint.onclick = add; 부분이 있다.

    이는 add함수를 만들고 또 대입함으로써 불필요한 작업이다.

    이를 수정해보겠다.

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
             function init(){
                btnprint = document.getElementById("btn-print");
                btnprint.onclick = function add(){
                 var a=3;
                 var b=4; 
                 btnprint.value=a+b;
                  update = document.getElementById("update");
                  update.innerText = a+b;
             }
            }
            window.onload = init;
          </script>
    </head>
    <body>
        
        <input type="button" value="클릭" id="btn-print"/></br>
        <span id="update">하이요</span>
    </body>
    
    </html>

    add함수를 그냥 바로 대입시켜줌으로써 두번해야하는 작업을 한번으로 줄였다.

    이때 함수이름명 add를 생략해도된다 그러면 아래와 같이 이름이 없는 함수 즉 익명함수가 된다.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
             function init(){
                btnprint = document.getElementById("btn-print");
                btnprint.onclick = function (){
                 var a=3;
                 var b=4; 
                 btnprint.value=a+b;
                  update = document.getElementById("update");
                  update.innerText = a+b;
             }
            }
            window.onload = init;
          </script>
    </head>
    <body>
        
        <input type="button" value="클릭" id="btn-print"/></br>
        <span id="update">하이요</span>
    </body>
    
    </html>

     

    다음으로

     

    window객체의 하위객체 onload를 사용하여 init함수를 window를 모두 읽어들인 후 실행한다.

    이 또한 init함수 앞에 바로 기입할 수 있다.

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
            window.onload = function init(){
                btnprint = document.getElementById("btn-print");
                btnprint.onclick = function (){
                 var a=3;
                 var b=4; 
                 btnprint.value=a+b;
                  update = document.getElementById("update");
                  update.innerText = a+b;
             }
            }
    
          </script>
    </head>
    <body>
        
        <input type="button" value="클릭" id="btn-print"/></br>
        <span id="update">하이요</span>
    </body>
    
    </html>

     

    처음 코드와 수정한 코드의 차이를 보면 가독성이 정말 좋아졌다는것을 볼 수 있다.

    'javascript ES5 정리' 카테고리의 다른 글

    js 간단한 계산기 만들기  (0) 2020.09.23
    js 코드분리와 이벤트 바인딩 방법  (0) 2020.09.23
    js 문서의 element 객체 이용  (0) 2020.09.23
    js dom 프로그래밍 window  (0) 2020.09.23
    js closer  (0) 2020.09.22
Designed by Tistory.