클래스
·
JavaScript
클래스는 프로토타입의 문법적 설탕인가? * 문법적 설탕 : Syntax Sugar https://en.wikipedia.org/wiki/Syntactic_sugar Syntactic sugar - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Programming language syntax designed for ease of use In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to e en.wikipedia.org - 프로..
클로저(Closure)
·
JavaScript
클로저 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어(하스켈,리스프,얼랭 등) 에서 사용되는 중요한 특성이다. *MDN 클로저 정의: 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다. 함수 중첩 const x=1; function outerFunc(){ const x=10; function innerFunc(){ console.log(x) //10 } innerFunc() } outerFunc() ------------------------------- 중첩 X const x=11; function outerFunc(){ const x=5; innerFunc() } function innerFunc(){ console.log(x) //11 } outerFunc() 렉시컬 스코프 -함수를 ..
this / 실행 컨텍스트
·
JavaScript
this this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수(self-referencing variable)다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. this는 자바스크립트 엔진에 의해 암묵적으로 생성된다. this 바인딩은 this와 this가 가리킬 객체를 바인딩하는 것이다. 전역에서 this는 -> window(전역 객체)를 가리킨다. 일반 함수 내부에서 this는 -> window를 가리킨다. 메서드 내부에서 thos는 메서드를 호출한 객체를 가리킨다. 메서드 내부에서의 this ==> {name: "Lee", getName: f} const person = { name: 'Lee', getName()..
Big O
·
알고리즘(Algorithm)
여러가지 코드를 일반적으로 서로 비교하고 성능을 평가하는 방법 시간복잡도,공간복잡도에 대한 높은 이해 하드웨어에 영향을 받지 않음 정확한걸 따지지 않고 전체적으로 따짐 (1000n이던 10n 이던 결국 n) 더 좋은 코드 빠른가? 메모리 사용이 적은가? 코드가 읽기 쉬운가? 예시 2가지 Big O : O(n) function exBigO(n){ let total=0; for (const i=0;i n의 값이 커질수록 실행시간이 늘어남 O(n) [#] O(n) 식이 2개이상 있어도 O(n)으로 표현한다. O(2n) or O(1000n+50) -> O(n) ex) for 문이 2개 따로 있을 때 f(n) = n^2 제곱 O(n²) [#] O(n)식이 중첩되어 있을때 O(13n²) -> O(n²) ex) fo..
백준 2869번 : 달팽이는 올라가고 싶다
·
알고리즘(Algorithm)
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B 1.25인데 하나로 만든날에 0.25를 더하므로 다음날로 취급해서 올림시킴
strict mode / 빌트인 객체
·
JavaScript
strict mode function foo(){ x=10; } foo() console.log(x) 결과는? 10이 출력된다. 키워드 없이 그냥 선언된 변수 x는 자바스크립트 엔진이 어디서 변수가 선언됬는지 찾다가 x변수가 선언된것이 없기에 암묵적으로 전역 객체에 x 프로퍼티를 생성한다. 이렇게 생성된 x는 전역변수로 사용할 수 있고 이것을 '암묵적 전역' 이라고 한다. 'use strict'; ~~ JS파일에 최상단에서 볼 수 있는 문구다. 'use strict' -> 스크립트 전체에 strict mode가 적용되서 ES-lint와 같이 에러를 잡아주는 역할을 한다. 작업시 최상단에 입력해두고 작업하길 바란다. 빌트인 객체 표준 빌트인 객체 ECMAScript 사양에 정의된 객체를 말하며 애플리케이션..
Tree - 트리
·
알고리즘(Algorithm)
기본적인 트리 자료구조다. 트리는 비선형 자료구조다. 즉, 계층 구조를 이루는 형태 Node: 트리에 데이터를 저장하는 기본 요소 Level: 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄. Leaf Node(Terminal Node): Child Node가 하나도 없는 노드 Sibling(Brother Node): 동일한 Parent Node를 가진 노드 Depth: Node가 가질 수 있는 최대 Level 이진 트리와 이진 탐색 트리(Binary Search Tree) -이진 트리: 노드의 최대 Branch가 2인 트리 -이진 탐색 트리: 왼쪽 노드는 해당 노드보다 작은값, 오른쪽은 큰 값 이진 트리에도 종류가 있다 -포화 이진 트리 모든 레벨의 노드들이..
함수와 일급 객체
·
JavaScript
일급객체 무명의 리터럴로 생성할 수 있다. 즉 , 런타임에 생성이 가능하다. 변수나 자료구조에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. (함수형 프로그래밍 = 함수의 매개변수에 전달, 반환값 사용) const increase=function (num){ return ++num; } const decrease=function (num){ return --num; } const auxs={increase,decrease} console.log(auxs); 함수가 일급 객체 -> 함수를 객체와 동일하게 사용가능 함수 객체의 프로퍼티 arguments,caller,length,name,prototype 프로퍼티는 모두 일반 객체에는 없는 함수 객체 고유의 데이터 ..
생성자 함수
·
JavaScript
생성자 함수 -> new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수를 말함 -> 생성자 함수에 의해 생성된 객체를 인스턴스라고 한다. Object 생성자 함수 , 다양한 빌트인 생성자 함수(String ~ Data, Promise) const person=new Object(); person.name='Hi' person.age=11 console.log(person); { name: 'Hi', age: 11 } const strObj=new String('hi') console.log(typeof(strObj)) console.log(strObj); const numObj=new Number(10) console.log(numObj); object [String: 'hi'] [Number:..
스코프 / 프로퍼티 어트리뷰트
·
JavaScript
스코프(*네임스페이스) -다른 코드가 식별자 자신을 참조할 수 있는 유효범위 ( 식별자가 유효한 범위) *네임스페이스: 하나의 개체를 가리킬 수 있는 범위를 나타내는 공간 , 개체를 구분할 수 있는 범위 스코프 체인 스코프가 계층적으로 연결된 것을 스코프 체인이라고함스코프 타입으로는 전역과 지역이 있고, (전역 자식 )과 개념이 비슷하기에 변수를 참조하는것도 자식이 가진것을 부모가 마음대로 활용하지 못한다. 렉시컬 스코프(정적 스코프) var x=1 function bye(){ var..