JavaScript
-
클로저(Closure) - JavaScript 공식문서 정리JavaScript 2024. 2. 25. 21:15
클로저란? 주변 상태(어휘적 환경)에 대한 참조와 함께 묶인(포함된) 함수의 조합 즉, 클로저는 내부함수에서 외부 함수의 범위에 대한 접근을 제공한다. 예시 function makeFunc() { const name = "Mozilla"; function displayName() { console.log(name); } return displayName; } const myFunc = makeFunc(); myFunc(); 여기서 신기한점은 displayName()이 실행되기 전에 makeFunc()에서 반환한다는 점이다. 몇몇 프로그래밍 언어에서 함수 안의 지역변수들은 그 함수가 처리되는 동안에만 존재한다. displayName의 인스턴스는 변수 name이 있는 어휘적 환경에 대한 참조를 유지한다. 이..
-
호이스팅 - JavaScriptJavaScript 2024. 2. 25. 19:59
호이스팅이란? 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 끌어올리는 것처럼 보이는 현상이다. 호이스팅은 선언문을 위로 올리고 할당은 호이스팅 하지 않는다. 예시 var (불가능) console.log(a); // undefined var a = 1; let (불가능) console.log(a); // ReferenceError: Cannot access 'a' before initialization let a =1; const (불가능) console.log(a); // ReferenceError: Cannot access 'a' before initialization const a =1; 여기서 var는 undefined가 나오고 ..
-
배열에 속성할당하기JavaScript 2024. 2. 18. 18:47
정규표현식 공식문서를 보다가 exec() 함수를 console.log()에 찍어봤다. const myRe = new RegExp("d(b+)d", "g"); const myArray = myRe.exec("cdbbdbsbz"); console.log(myArray); 이렇게 찍어보니 결과가 [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz', groups: undefined ] 이런식으로 나왔다. 근데 내가 아는 상식으로는 배열에 객체가 들어가면 들어갔지 저렇게 중괄호도 없이 index : 1 과 input : ‘abcde’ 이렇게 생으로 들어가는게 가능한건가? 하고 배열을 만들어봤다. 이렇게 뜨고 , 가 필요하다는 에러가 떴다. 뭐지? 저거는 함수 만드는 사람들이 어떠한 처..