이상하게 이 질문에 답을 올리면 잘 올라가지 않는데 원인을 아직 잡지 못했습니다. 그래서 궁여지책으로 아래와 같이 답을 드립니다.
-----------------------------------
변수의 종류에 대해 정확한 공부가 안되어 있어서 지금 어려워 하는 겁니다.(책 268페이지 참고)
1.함수안에 선언한 변수를 지역 변수라고하고, 이 변수는 함수 밖에서 액세스할수 없어요.
우선 질문자의 첫 번째 세 줄과 같이한 것이 바로 commenDiv 변수를 지역 변수 로 선언합니다.
지역 변수는 함수가 끝나면 사라집니다. 그러니까 init()이 불러질 때 생겻다가 init() 끝남과 동시에 사라집니다.
2. 함수 바깥에 선언된 변수가 전역 변수이니다. 질문자의 두 번째 소스 코드와 같이 하면 전역 변수 commentDIv를 선언합니다.
전역변수는 한 번 만들어지면 어디서든 사용되고 브라우저가 닫힐 때까지 없어지지 않아요.
다만 앞의 코드는 init()이 불려지기 전에 그러니까 HTML 페이지가 로딩되고 있는 상태에서
이 코드(var commentDiv = document.getElementById("commentDiv"); )를 만날 때 바로 실행되고 전역변수가 생깁니다.
문제는 여기에 있습니다. 이 라인이 실행되는 시점에서 document 객체가 완성되어 있지 않고, id=commentDiv 인 태그가 처리되지 않은 상태라면
이문장에서(document.getElementById("commentDiv"); ) 오류가 납니다.
그러니까 이 문장(document.getElementById("commentDiv"); )은 HTML 문서가 완전히 로딩된 후에 실행되어야 합니다.
그래서 저의 정답은 질문자의 마지가 소스 방법과 같이 하지요
이상하게 이 질문에 답을 올리면 잘 올라가지 않는데 원인을 아직 잡지 못했습니다. 그래서 궁여지책으로 아래와 같이 답을 드립니다.
-----------------------------------
변수의 종류에 대해 정확한 공부가 안되어 있어서 지금 어려워 하는 겁니다.(책 268페이지 참고)
1.함수안에 선언한 변수를 지역 변수라고하고, 이 변수는 함수 밖에서 액세스할수 없어요.
우선 질문자의 첫 번째 세 줄과 같이한 것이 바로 commenDiv 변수를 지역 변수 로 선언합니다.
지역 변수는 함수가 끝나면 사라집니다. 그러니까 init()이 불러질 때 생겻다가 init() 끝남과 동시에 사라집니다.
2. 함수 바깥에 선언된 변수가 전역 변수이니다. 질문자의 두 번째 소스 코드와 같이 하면 전역 변수 commentDIv를 선언합니다.
전역변수는 한 번 만들어지면 어디서든 사용되고 브라우저가 닫힐 때까지 없어지지 않아요.
다만 앞의 코드는 init()이 불려지기 전에 그러니까 HTML 페이지가 로딩되고 있는 상태에서
이 코드(var commentDiv = document.getElementById("commentDiv"); )를 만날 때 바로 실행되고 전역변수가 생깁니다.
문제는 여기에 있습니다. 이 라인이 실행되는 시점에서 document 객체가 완성되어 있지 않고, id=commentDiv 인 태그가 처리되지 않은 상태라면
이문장에서(document.getElementById("commentDiv"); ) 오류가 납니다.
그러니까 이 문장(document.getElementById("commentDiv"); )은 HTML 문서가 완전히 로딩된 후에 실행되어야 합니다.
그래서 저의 정답은 질문자의 마지가 소스 방법과 같이 하지요
글로 쓰니 매우 표현이 어렵군요,