자바에는 전역변수, 지역변수라는 개념이 있다. 자바스크립트에서 이 둘의 구분 방법은 간단하다. 처음 선언 될 때 함수 바깥에서 이루어 졌으면, 전역변수. 함수 안에서 이루어졌으면 지역변수다. 기능상으로는 전역변수는 어느 곳에서나 값을 끌어 올 수 있는 것이고 지역변수는 그 함수 內에서만 값을 끌어 올 수 있다.
이 개념이 재미 있는 것이 <javascript></script> 태그 밖에서도 전역변수 기능을 발휘한다는 것이다.
보통 html 태그 안에 속성 지정 時 css가 아닌 이상 그 태그 안에서만 속성이 지정 되는데 자바스크립트는 전역변수나 일반 함수까지도 자바스크립트 태그와 상관 없이 공유하여 사용한다는 특징이 있다.
요즘 검색기 단다고 각 하나의 자바스크립트로 만들어 복붙하는 과정에서 이러한 특징을 발견 하게 되었다.
그렇다면 이 현상을 해결 하는 방법에 무엇이 있을까?
변수명이나 함수 이름을 달리한다.
당장 떠오르는 방법이다.
애초에 익명함수 등 고급 스킬로 짰으면 이런 걱정이 없었겠지만...
그럼 변수명을 일일이 바꾸는 방법에는 어떤 것이 있을까?
왠만한 애디터에 달려 있는 기능! 모두 까기가 아니라 모두 글자바꾸기를 사용하거나,
동적변수명을 지정하여 이를 해결하면 된다.
예를 들어,
Edit plus의 경우 '컨트롤 + h'를 누르면
이런 창이 뜨는데, 이때 모두 바꿈을 사용하면된다.
물론 한글 프로그램에서도 컨트롤 + f를 누르면,
모두바꾸기 기능이 나와 유용하게 쓸 수 있지만, 한글 프로그램 자체가 무겁고, 코드를 영어로 쓰는데 불편함이 있어 왠만하면 전용 에디터를 사용 하는 것을 추천한다.
즉, 복붙하는 과정에서 var a;를 선언했는데, 이 것이 시도때도 없이 공유된다 생각 해 보자.
엉키고 설키고 말이 아닐 것이다. 이때, a 앞에 특정 단어를 입력하면 된다. 예를 들어 var pungmul_a;
이런 식으로 말이다.
그 뒤 복붙 했을 때 pungmul이라는 특정단어을 찾아서 다른 이름으로 모두 바꿔버리면 쉽게 이름이 다른 고유변수가 발생하는 것이다. var 58호_a;
이는 변수 뿐만아니라 함수에도 유용하게 사용 할 수 있어 함수 이름을 일일히 바꾸지 않아도 된다.
function pungmul_a(); function 58호_a();
물론 앞서 언급했다 싶이 함수의 경우 괄호 사이에 변수값을 집어 넣어 익명함수로 만들어 각 검색기 마다 주어진 변수를 달리하면 되지만... function pungmul_a(b);
필자 입장에서는 걍 특정 단어를 기입하여 쓰는 것이 편하다. 그저
전역변수, 함수에만 특정 낙인을 찍고 그 단어만 변경하면 되니.
#태양광 상담은(010-2668-3897)...
RECENT COMMENT