전역변수에 대해 제대로 알지 못했던게 사단이 났다.
(뭐 사단이라고 말해봤자 큰 일은 아니고..🥲)
전역변수를 별도로 지정하지 않고
이런식으로 function 내에 다른 function을 두었더니
전역변수 : undefined
가 확인되었다.😧
HTML
<% for (var i=0; i < data.length; i++) { %> <li id="testId" data-id="<%= data[i].id %>"> <h6><%= data[i].address %></h6> <h6><%= data[i].name[0] %></h6> </li> <% } %> ... <div> <input id="sendMessage"> <button id="send">전송</button> </div>
JavaScript
$('#testId').click(function(){ var 전역변수 = $('#id').attr('data-id'); $('#send').click(function() { console.log('전역변수 : '+전역변수) }); });
HTML
<% for (var i=0; i < data.length; i++) { %> <li id="testId" data-id="<%= data[i].id %>"> <h6><%= data[i].address %></h6> <h6><%= data[i].name[0] %></h6> </li> <% } %> ... <div> <input id="sendMessage"> <button id="send">전송</button> </div>
JavaScript
var 전역변수; $('#testId').click(function(){ 전역변수 = $('#id').attr('data-id'); }); $('#send').click(function() { var 보낼메세지 = $('#sendMessage').val(); var 보낼거 = { A : 어쩌구 , B : 저쩌구 });
(전역변수라는 개념을 생각치 않고🤧)
왜 함수가 실행되기 전 지정되었던 변수인데 나중 function에서 값을 불러올 수 있었던건가? 싶어서 chatGPT에 물어봤다.
chatGPT 의 해답
var 전역변수는 함수 내부의 로컬 변수가 아닌 전역 변수로 선언되었습니다. 그래서 이 변수는 해당 스크립트 내에서 어디서든 접근할 수 있습니다.
그렇다. 전역변수로 지정한 변수는 스크립트 내 어디든 접근이 가능하다는 것이다...^^
📖 스코프(Scope)
변수가 어느 범위까지 유효한지?
Click! 이전에 ES6문법과 관련 var,let,const 차이점을 기록해 둔게 있다.
JavaScript 예시
console.log(호이스팅) // 변수 선언 전에 콘솔에 찍어봄 var 호이스팅 = '호잇'; console.log(호이스팅) // 변수 선언 후 콘솔 찍음
결과
undefined
호잇