본문 바로가기

JavaScript3

클로저의 기본 개념 자바스크립트를 공부하면서 클로저가 생소하게 다가와 조금 더 공부하기로 하였다. 예시는function outer() { let count = 0; function inner() { return ++count; } return inner;}let increment = outer();console.log(increment()); // 1console.log(increment()); // 2이 코드를 사용해서 설명을 해보려고 한다. 위에코드를 보면 간단하게 보았을 때는 처음에outer() 함수를 계속해서 호출하게 되니깐 그때마다 count = 0으로 새로 초기화가 되는 것 아닌가 생각해서값이 1이 두번 나온다고 생각이 되었다. (java만 사용해본 개발자 답게) 하지만 자바스크.. 2024. 12. 10.
스코프와 클로저 자바스크립트에서는 스코프 때문에 var를 사용하면 원하는 인덱스를 나타내기가 어려울 수 있다. 아래의 세개의 div를 이벤트리스너를 추가하여 각각의 인덱스를 alert으로 나타내려고 할때 Click me! DIV 0 Click me! DIV 1 Click me! DIV 2 var를 사용하면for (var i = 0; i  결과 값이 어디를 클릭해도 3을 출력하게 된다. 이유는 var는 함수 스코프로 사용되고 있기 때문에 함수 밖에서 선언된 i는 전역변수로 어디서나 사용할 수 있게된다.여기서 for문을 돌면서 이벤트리스너가 추가되지만 "click" 이벤트가 발생할 때 i 값을 참조하여 값을 출력하게 되는데i가 전역 변수로 for문을 돌아 3으로 설정되기 때문에 어디서 클릭을 하더라도 3이라는 숫자가 출력되.. 2024. 12. 10.
JavaScript의 Scope 자바스크립트의 스코프스코프란 현재 접근할 수 있는 변수들의 범위를 의미합니다. 변수가 스코프 안에 선언되면 해당 스코프 내에서만 접근 가능하고, 스코프 밖에서는 접근할 수 없습니다. scope의 생성 자바스크립트는 다른 언어와는 달리 일반적인 블록 스코프를 따르지 않음. 자바스크립트의 스코프는 특정 구문이 실행될 때 생성하여, 스코프 체인을 생성하게 됨. scope를 생성하는 구문은 다음과 같다. - function - catch- with => 사용하지 말아야할 구문 다른언어인 자바의 경우 {} 블록을 통해서도 스코프를 정하지만 자바스크립트의 경우에는 {}을 통해서는 스코프를 만들 수 없다. 1. function문의 스코프 var globalVar = "전역 변수";let globalLet = "전역 .. 2024. 12. 9.