프로토타입이란 자신의 상위 객체(또는 부모 객체) 역할을 하는 객체로서, 하위(자식) 객체에 프로퍼티와 메서드를 상속한다. 즉 객체는 프로토타입으로부터 메서드를 포함한 프로퍼티들을 상속받는다. 이 상속을 통해 불필요한 중복을 제거할 수 있는데, 예시를 들어보자. // 컨스트럭터(생성자 함수) function Circle(radius) { this.radius = radius this.getArea = function() { return Math.PI * this.radius ** 2; } } // 생성자 함수로 인스턴스 생성 var circle1 = new Circle(1); var circle2 = new Circle(2); circle1.getArea === circle2.getArea; // fal..
스킬트리 문제 출처 - 프로그래머스 내가 푼 답 function solution(skill, skill_trees) { let arr = skill.split(''); let str, count = 0; for(let i = 0; i arr.includes(i)).join(''); if(str === skill.substring(0,str.length)) { count++; } } return count; } 처음에는 new RegExp를 쓰려고 용을 썼는데, 구현을 못해서 결국 그냥 filter로 했다. 다른 분들의 풀이를 보니 정..
Modules Inline Script의 문제점 Lack of code reusability 또다른 html파일을 만들 때에 복사 붙여넣기를 해야한다. Pollution of global namespace 전역변수를 선언함으로써 변수명이 겹치는 문제. html파일 내에 js를 작성할 때의 문제 Script tags 여전히 다른 html 파일을 만들려고 할 때 copy & paste를 해야 한다. Dependency Resolution 만약 1.js가 2.js에 있는 함수에 접근하려고 한다면 2.js파일은 아직 로드되지 않았기 때문에 에러가 난다. 스크립트 태그를 정렬할 때 순서를 잘 정하는 것이 중요하다. Pollution of global namespace 여전히 전역 네임스페이스의 오염 문제를 해결하..
How Javascript works 자바스크립트 엔진(ex. 크롬의 V8)은 Memory Heap과 Call Stack을 가지고 있다. Memory Heap Memory allocation이 이루어지는 곳. 예를 들어 전역변수를 선언하면 Memory Heap 안의 메모리에 할당된다. 그러나 저장되는 데에 한계가 있어서, 사용되지 않는 메모리가 늘어날 수록 memory leak이 생긴다. Global Variable이 바람직하지 않은 이유다. Call Stack console.log('4') // two함수 위에 위치 two() // one함수 위에 위치 one() // 스택 가장 아래에 위치 위에서부터 아래로 하나씩 실행되며 없어진다. (console.log -> one 함수 순. first in, l..
Return a Sorted Array without changing the Original Array var globalArray = [5, 6, 3, 2, 9]; function nonMutatingSort(arr) { return [].concat(arr).sort((a,b) => a-b); } nonMutatingSort(globalArray); A side effect of the sortmethod is that it changes the order of the elements in the original array. One way to avoid this is to first concatenate an empty array to the one being sorted (remember that..
Prototype 자바스크립트에는 Prototype Link와 Prototype Object가 존재한다. 이를 통들어 Prototype이라고 한다. Prototype Object function Dog() {}; // 함수 var dogObj = new Dog(); // 함수로 객체를 생성 var obj = {}; // var obj = new Object(); 객체는 언제나 함수로 생성된다. 함수가 정의되면 Constructor 자격이 생긴다 Constructor 자격이 있어야만 new operator를 통해 객체를 만들어낼 수 있다. new는 함수만 쓸 수 있다. (즉 함수 -> Constructor -> new를 통해 객체 생성 가능) 함수가 정의되면 Prototype Object도 같이 생긴다.생..
Refactor Global Variables Out of Function1) Don't alter a variable or object - create new variables and objects and return them if need be from a function. 2) Declare function arguments - any computation inside a function depends only on the arguments, and not on any global object or variable. So far, we have seen two distinct principles for functional programming: Use the map Method to Extract ..
문제 You will be provided with an initial array (the first argument in the destroyer function), followed by one or more arguments. Remove all elements from the initial array that are of the same value as these arguments. 예시 destroyer([1, 2, 3, 1, 2, 3], 2, 3) should return [1, 1]. destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3) should return [1, 5, 1]. destroyer([3, 5, 1, 2, 2], 2, 3, 5) should return [1]...
Functional Programming TerminologyThe functions that take a function as an argument, or return a function as a return value are called higher orderfunctions. When the functions are passed in to another function or returned from another function, then those functions which gets passed in or returned can be called a lambda. Functions that can be assigned to a variable, passed into another function..
A more efficient way is to set the prototypeto a new objectAdd the property numLegsand the two methods eat()and describe()to the prototypeof Dogby setting the prototypeto a new object.There is one crucial side effect of manually setting the prototypeto a new object. It erased the constructorproperty! To fix this, whenever a prototype is manually set to a new object, remember to define the constr..
ES7 'Helloooo'.includes('o'); // true const pets = ['cat', 'dog']; pets.includes('cat'); // true const sqaure = (x) => x**2 square(2); // 4 square(5); // 25 const cube = (x) => x**3 cube(3); // 27 ES8 .padStart() .padEnd() 'Turtle'.padStart(10); // " Turtle" 합쳐서 total 10 스페이스 'Turtle'.padEnd(10); // "Turtle " 합쳐서 total 10 스페이스 const fun = (a,b,c,d,) => { console.log(a); } fun(1,2,3,4,); // print..
- Total
- Today
- Yesterday
- 개발 공부
- Java
- jQuery
- CSS
- getter
- useEffect
- 리덕스
- Session
- react
- Conflict
- Redux
- 제네릭스
- GIT
- SQL
- 포인터 변수
- til
- Prefix Sums
- 깃
- JavaScript
- Data Structure
- 인스턴스
- oracle
- youtube data api
- linkedlist
- rxjs
- package.json
- 자바
- this
- c언어
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |