맨땅에코딩/javascript
-
apply,call,bind 비교맨땅에코딩/javascript 2020. 9. 11. 14:39
1. apply, call : apply와 call은 주어진 this 값과 유사배열로 제공되는 arguments 로 "함수를 호출" 할 때 사용한다. 사용법 const numbers = [1, 2, 6, 4, 5]; const max_apply = Math.max.apply(null, numbers); const max_call = Math.max.call(null,numbers[0],numbers[1]); console.log(max_apply,max_call); // expected output: 6,6 #첫번째 인자로 들어가는 thisArg 의미? : 함수를 호출하는데 제공되는 this의 값 (예제에서 변경가능) const fn = { str : "gildong", say : function(){ ..
-
[ES6] WeakSet vs Set [번역]맨땅에코딩/javascript 2020. 8. 9. 23:53
[차이점] 앞서 작성한 WeakMap과 WeakSet 유사하다. Set과 유사하지만 object를 key로 가져야한다. object는 다른곳에서 접근 가능할 동안만 존재한다. Set 처럼, add, has, delete 메소드를 제공하나 size, keys()와 iteration은 제공하지 않는다. "weak"이 된다는 것은 추가적 저장소로서의 활동하는것을 의미한다. 하지만, 임의적인 데이터가 아닌 예/아니오의 사실만을 위해서다. [사용예] let visitedSet = new WeakSet(); let john = { name: "John" }; let pete = { name: "Pete" }; let mary = { name: "Mary" }; visitedSet.add(john); // John ..
-
[ES6] WeakMap vs Map [번역]맨땅에코딩/javascript 2020. 8. 9. 23:32
[서문] Garbage Collection : JavaScript 엔진은 value를 메리에 저장하는데 ( 잠재적으로 사용될 수 있을동안 ) let john = { name: "John" }; // the object can be accessed, john is the reference to it // overwrite the reference john = null; 보통, 객체의 프로퍼티 혹은 배열이나 다른 데이터 구조의 요소들은 메모리에 그 데이터구조가 있을 동안만 접근 가능하다. 예를 들어, 배열에 객체를 넣을때, 그리고 배열은 살아있을때, 그 객체에 다른 참조가 없을때도 배열안에 있는 객체는 살아있다. let john = { name: "John" }; let array = [ john ]; jo..
-
[ES6] Set vs Array 비교 [번역]맨땅에코딩/javascript 2020. 8. 7. 17:48
[Set은 뭐고 Array는 뭐야?] JS로 작업을 해본 누구나 Array는 아주 익숙할거야. 하지만 정확하게 Array는 뭘까? 일반적으로 Array는 데이터 덩어리(?) 표현하는 구조적 유형이다.(숫자,객체들 등등..) 연속적인 메모리에 할당되어있어. 예시로 : [1,2,3,2] 그렇다면 Set은? Set은 좀더 수학적 발상으로서, index에 의해 순서적으로 할당될 필요없이 중복없는 요소들/객체들만 포함하는 추상적인 데이터 유형이다. 예시로 : {1,2,3} 맞아, 정의에 의하면, Array와 Set은 기술적으로 다른 개념이야. 가장 큰 차이점중 하나는, Array는 중복될 수 있다는 점이야. 하지만 Set은 그렇지 않아. 게다가, Array는 "인덱스 콜렉션" 이고, Set은 "키 콜렉션" 이야...
-
[ES6] Map vs Object 비교 [번역]맨땅에코딩/javascript 2020. 8. 7. 16:44
Map 과 Object를 잘 비교해서 정리해놓은 글이 있어서 나름(?) 번역해서 정리해놓고자 합니다. [개념] Map 이란 무엇인가?: Map은 data collection 유형으로 ( 좀 더 있어보이게 말하면 - 추상적 데이터 구조 유형) , 즉 데이터가 어떠한 쌍의 형태로 저장되어있는데, 유일한 key와 그 키에 연결된 value를 포함한다.각 저장된 key의 유일함 때문에 중복된 쌍은 없다. Map은 빠른 검색과 데이터를 들여다보는 일에 주로 사용된다. ※ 중요한 점 : Map의 key와 value는 어떠한 데이터 유형으로도 가능하다. string 혹은 integer 로 제한되어있지 않다. Object 란 무엇인가?: 모두들 Object를 알고 있다. 특히 Javascript안에서는. Object는..
-
[ES6] var, let, const 비교맨땅에코딩/javascript 2020. 6. 26. 16:45
[서문] 1.블록 레벨 스코프 함수 레벨 스코프 (function-level scope) : 함수 내에서 선언된 변수는 함수 내에서만 유효하며 함수 외부에서는 참조할 수 없다. 즉, 함수 내부에서 선언한 변수는 지역 변수이며 함수 외부에서 선언한 변수는 모두 전역 변수이다. 블록 레벨 스코프 (Block-level scope) : 모든 코드 블록(함수, if문, for문, while문, try/catch문 등) 내에서 선언된 변수는 코드 블록 내에서만 유효하며 코드 블록 외부에서는 참조할 수 없다. 즉, 코드 블록 내부에서 선언한 변수는 지역 변수이다. 2. 호이스팅 var, let, const, function등의 선언문을 해당 스코프의 선두로 옮긴 것처럼 동작하는 특성 선언 단계 (Declaratio..