일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- let
- 개발툴
- IT
- 인터프리터
- css기초
- APPEND
- var
- 기초공부
- AWS
- 코드스테이츠
- 메모이제이션
- flex기본
- AWS조사
- 원본과 복사본
- 클로저
- 스코프
- scope
- 리커젼
- appendChild
- complexity
- 재귀함수
- CSS
- node.js설치
- node.js
- prototype
- Big-O notation
- 생활코딩
- JavaScript
- AWS기초
- vscode
- Today
- Total
목록JavaScript (6)
Jveloper

Prototype Object와 Prototype Link를 제대로 구분하여 인지하자 자바스크립트에는 클래스라는 개념이 없고 대신 프로토타입이라는것이 존재한다 자바스크립트가 프로토타입기반 언어라고 불리는 이유이다 클래스가 없으니 상속기능도 없다, 그래서 프로토타입을 기반으로 상속을 흉내내도록 구현해 사용한다 ● Prototype Object 객체는 언제나 함수로 생성된다 function Person() {} // -> 함수 var personObject = new Person(); // -> 함수로 객체를 생성 이렇듯 언제나 객체는 함수에서 시작된다 var obj = {}; // 이 코드는 사실 다음코드와 같다 var obj = new Object(); Object와 마찬가지로 Function, Arra..
recursion의 핵심 : recursion을 만들때는 탈출구부터 생각하라 ! 대표적인 예) factorial, fibonacci fibonacci 를 살펴보자 function fib(n){ if(n === 0) return 0; // 탈출구 else if(n === 1) return 1; // 탈출구 else if(n > 1){ return fib(n-1) + fib(n-2); // 재귀 } } fib(6); // 8 - 리커전의 단점 : 호출횟수가 너무 많음, 성능상 손해임( 대안책(?) : 메모이제이션 ) - 리커전의 장점 : 표현방법에 있어서는 반복문보다 낫다 메모이제이션이란? 캐시를 구현한것이다 ( 한번 불려졌던건 기억해놓는다 그러므로 호출횟수가 훨씬 적어진다) 다른 케이스들) - 트리구조에..

Array.~~~() : 클래스에서만 작동 // Array.prototype.~~~() : 인스턴스에서만 작동 Array.prototype.~~~() : 인스턴스에서만 작동하는거에 대해 알아보자 ex) 그렇다면 인스턴스란 무엇인가? 'new Array(1,2,3)' 또는 'let array = [1,2,3]' 이것들은 Array.prototype( 원본 ) 이 있기때문에 만들어지는 복사본(즉, 인스턴스)이다 ex) prototype이 붕어빵 틀이라면 new Array(1,2,3) , [1,2,3] 이 녀석들이 계속 복사될수 있는 붕어빵이라고 생각하면 편하다 Array.prototype.join.call([1,2,3], '-'); // "1-2-3" [1,2,3].join('-'); // "1-2-3" /..

클로져란? 외부함수의 변수에 접근할 수 있는 내부함수 - scope chain으로 표현되기도 함 - return 하는 내부함수를 클로져 함수라고 지칭 function 외부함수() { let 외부함수의 변수 = 'outer fn variable '; function 내부함수() { let 내부함수의 변수 = 'inner fn variable '; console.log(외부함수의 변수 + 내부함수의 변수); } } // 외부함수의 변수를 내부 함수, 즉 closure가 사용할 수 있음 내부함수의 접근하는 두가지 방법. 1. 외부함수()() 2. var innerFn = 외부함수() innerFn() 클로져가 가지는 세가지 scope chain 1. 클로져 자신에 대한 접근(위 예제의 내부함수안의 변수) 2...
scope에서 짚고넘어가야 될 녀석들 ● lexical scope / dynamic scope ● local scope / global scope ● block level / function level ● 호이스팅 - lexical scope / dynamic scope lexical(static) scope : 유효범위가 코드를 작성될 때 결정됨 -> 자바스크립트에서는 함수가 선언되는 동시에 자신만의 scope를 가짐 dynamic scope : 유효범위가 실행 순서에 의해 결정됨 * 유효범위란? 변수(선언)와 그 값(할당)이 어디서부터 어디까지 접근이 가능한지를 판단하는 범위 var scope; // 선언입니다. scope = '할당입니다'; // 할당입니다. console.log(scope) // ..