분류 전체보기(119)
-
[JS] 클로저
클로저 MDN에서는 클로저를 "함수와 그 함수가 선언될 당시의 Lexical environment의 상호관계에 따른 현상"으로 말하고 있습니다. Lexical environment에 대해서 복습하자면 LexicalEnvironment는 "환경레코드", "outerEnvironmentReference"로 이루어져 있으며 outerEnvironmentReference는 함수가 선언될 당시의 LexicalEnvironment를 참조하면서 스코프 체인이 일어나게 되고 식별자의 유효 범위가 늘어납니다. 예로 들면 함수 A와 A의 내부함수 B가 있다면, 내부함수 B의 outerEnvironmentReference 에는 함수 A의 LexicalEnvironment에 접근을 하는 겁니다. 그렇다면 함수 A에서 ..
2022.08.07 -
이걸 왜 지금 알았을까..
매번 티스토리 쓰면서 불만이었던 게 마크다운으로 사용해서 잘 정리해놔도 마크다운 기능을 쓰면 블록이나 코드가 보기 안 좋게 구성이 돼버리는 경우가 많다. 매일 마크다운으로 정리를 하는 나에게 있어서 여간 피곤한 일이 아니다. 매번 블로그에 새로 적기에는 너무나 피곤한 일이기 때문에 아예 티스토리로 정리 해버리거나 시간을 더 걸려서 게시한 적도 많았다. 이 때문에 글 쓰는 것에 손에 가지 않기도 했다. 그러다 요즘 글을 정리하면서 필요성을 너무 느껴서 한번 찾아봤는데 티스토리 마크다운 제대로 적용하기 안녕하세요. 엔젤루스입니다. 이번에는 티스토리에서 마크다운를 적용하는 방법을 포스팅하려고 합니다. 문제점 티스토리에서 포스팅할 때 마크다운 언어를 지원을 해줍니다. 하지만 실제로 darkangelus.tist..
2022.08.07 -
[JS] 콜백함수
콜백함수 다른 코드의 인자로 넘겨주는 함수를 말하며, 인자로 넘겨주면서 제어권도 위임을 진행합니다. 이를 통해서 함수가 실행되는 시점을 조절할 수 있습니다. 콜백함수의 제어권 var count = 0; var cbFunc = function () { console.log(count); if (count++ > 4) clearInterval(timer); }; var timer = setInterval(cbFunc, 300); cbFunc()는 사용자가 호출하고 제어하지만 timer에서 cbFunc()는 setInterval에 의해서 호출되고 제어되고 있습니다. 콜백함수의 this Array.prototype.map(callback[, thisArg]) map의 경우 첫 번째 인자를 콜백함수를 받으..
2022.08.07 -
[JS] this
this this는 실행 컨텍스트가 생성될 때 결정이 됩니다. 그 뜻은 함수를 호출할 때 결정된다고 할 수 있습니다. this를 구분하는 방법은 대표적으로 함수와 메서드 입니다. 전역공간의 this 전역공간의 this는 전역 객체를 가리킵니다. 브라우저 환경: window Node.js 환경: global 전역 변수 전역 변수를 선언하면 JS엔진은 이를 전역객체의 프로퍼티로 할당합니다. 좀더 개념을 확장하면 JS의 모든 변수는 특정객체(LexicalEnvironment)의 프로퍼티로 동작함 그렇다면 var로 선언한 전역변수와 전역객체의 프로퍼티의 차이는 무엇일까요? 호이스팅 configutration 의 True, False window.a = 1; var b =2; delete window.a;..
2022.08.06 -
[자료구조] 해시, 해시맵
0. 해시가 나온 상황 배열의 경우 내부 인덱스를 통해서 자료의 검색을 한번에 함 장점: 빠른 검색 단점: 데이터의 삽입, 삭제 시 많은 데이터가 이동하게됨 (시간 소요!) 연결리스트는 해당 노드를 검색하기위해 순회 검색을 함 장점: 데이터의 삽입, 삭제 시 인근노드들의 참조 값만 수정하면 됨 단점: 느린 검색 이 과정에서 해쉬라는 데이터를 다루는 방법이 나오게 됨 1. 해시 원리 해시함수F(key) => HashCode => 배열의 index => index와 value가 한쌍으로 존재하게 됨 key가 해시함수를 거쳐서 HashCode로 바뀌게되고 HashCode가 배열의 크기에 맞는 Index 로 변환이 됨 해당 Index에 value를 할당하여 (key, value) 형태의 테이블을 형성하게 됨 k..
2022.08.06 -
[JS] 실행 컨텍스트
실행 컨텍스트 실행한 코드에 제공하기 위한 환경 정보를 모아놓은 객체입니다. 자바스크립트 엔진은 코드를 실행하기 전 모든 코드를 훑어서 환경정보를 수집합니다. 콜스텍에 전역 컨텍스트가 담기고 그 위로 실행 컨텍스트가 쌓아 올라갑니다. 실행컨텍스트를 구성할 수 있는 방법은 함수를 실행하는 것입니다. 위에 있는 컨텍스트를 콜스텍에서 꺼내면서 컨텍스트와 관련된 코드들을 실행하며 코드의 환경과 순서를 보장합니다. 가장 먼저 전역 컨텍스트를 콜스텍에 담으며 함수를 만나게 되면 그 함수의 컨텍스트를 생성하고 콜스택에 담습니다. 이후 맨 위의 컨텍스트에 해당하는 코드들을 순차적으로 실행합니다. 실행컨텍스트에 담기는 정보 VariableEnvironment: 환경레코드 (snapshot) outerEnvironment..
2022.07.31