javascript ES5 정리

js 스크립트 코드의 지역화

풀스택 개발자 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>

 

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