→ innerHTML은
태그를 포함한 모든 HTML 내용을 가져옵니다.
자바스크립트로 HTML 페이지를 동적으로 생성할 때 간편하게 내용을 추가할 수 있기 때문에 많이 사용하는 속성입니다.
textContent는
태그 안의 모든 텍스트 내용을 표시합니다.
모든 태그에는 scirpt, style 태그 등 특정 용도로 사용하는 태그까지 해당됩니다.
원하지 않는 내용까지 가져올 수 있으므로, 용도에 맞춰서 제한적으로만 사용해야 합니다.
차이점
textContent는 눈에 보이지 않는 값까지 반환하고,
innerText는 눈에 보이는 것만 반환합니다.
이러한 차이가 일어나는 것은 innerText는 HTMLElement 인터페이스 속성이고, textContent는 Node 인터페이스의 속성이기 때문입니다.
→ 기본으로 정의된 이벤트를 작동하지 못하게 하는 메서드입니다.
(a 태그나 submit 태그는 누르게 되면 href 를 통해 이동하거나
창이 새로고침하여 실행이되며 preventDefault 를 통해 이러한 동작을 막아줄 수 있습니다.)
→ MDN의 정의로
“A closure is the combination of a function and the lexical environment within which that function was declared.”
클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경(Lexical environment)과의 조합입니다.
“함수”란 반환된 내부함수를 의미하고
“그 함수가 선언될 때의 렉시컬 환경(Lexical environment)”이란
내부 함수가 선언됐을 때의 스코프를 의미하는데
즉, 클로저는 반환된 내부함수가 자신이 선언됐을 때의 환경(Lexical environment)인 스코프를 기억하여
자신이 선언됐을 때의 환경(스코프) 밖에서
호출되어도 그 환경(스코프)에 접근할 수 있는 함수를 말합니다.
조금 더 간단히 말하면
클로저는 자신이 생성될 때의 환경(Lexical environment)을 기억하는 함수다라고 말할 수 있겠습니다.