본문 바로가기

전체 글

(52)
[TIL] 1/3: Inheritance Patterns - 3. ES6 Class 기반 상속/ super 키워드 더보기 자바스크립트는 상속이 이루어지는 개념은 간단한데 그것을 구현하는 코드가 상당히 장황하다. Object.create() 을 사용해도 장황한 건 마찬가진데 이를 보완하기 위해 ECMAScript6에서 class 스펙이 추가되었다. 클래스라고는 하지만 새로운 개념이 아니고 상속의 구현 원리는 기존과 동일한 내용으로 장황했던 코드를 간결하게 하는 숏컷이 추가됐다고 생각하면 된다. - 코드가 간결해지고 이해하기 쉽게 바뀌었다 하더라도 이를 통해 만들어진 객체의 프로토타입 체인 연결 구조는 기존과 동일하고 또한 동일한 방식의 프로토타입 룩업으로 식별자를 찾아간다. (ref: https://meetup.toast.com/posts/104) class Parent { constructor(name) { this..
[TIL] 1/3: Inheritance Patterns - 2. ES5 Prototype 기반 상속/ Object.create * 자바스크립트는 프로토타입 기반 언어 ☞ 프로토타입을 이용한 상속을 지원 더보기 - 자바스크립트는 객체 지향 언어 & 함수형 프로그래밍도 가능한 멀티 패러다임 언어 - 자바스크립트에는 클래스란 개념이 없어 객체 생성이나 상속이 다른 언어와 다르고, 특히 OOP는 주로 프로토타입이란 매커니즘을 통해 이루어진다. 구분 프로토타입 기반 언어 클래스 기반 언어 예시 JavaScript Java, C++ 객체 (프로토타입)객체 클래스, 인스턴스 상속 프로토타입을 통한 상속 존재하는 객체와 존재하는 객체의 동적인 연결 클래스를 통한 상속 클래스의 상속 정보를 이용해 상속 구조의 모습을 가진 새로운 객체를 찍어내는 방법 (ref: 프로토타입 기반 프로그래밍 - 위키백과) // (ref: https://webclub..
[JavaScript] 옵션 객체 초기화 (ref: https://www.crocus.co.kr/994) 자바스크립트 옵션 객체 초기화 방법 자바스크립트 개발 환경은 Microsoft Visual Studio 2015 버전 HTML 기능 및 Chrome을 이용하고 있습니다. 자바스크립트도 C++ / Java 처럼 객체 생성과 동시에 초기화를 할 수 있는 방법이 있다. 이전 C++ / Java.. www.crocus.co.kr •생성자에서 바로 변수 초기화 : ||를 이용하여 undefined가 될 때 || 연산을 통해 다음 값을 넣어주는 방식 function sum(x, y) { // 매개변수의 값이 falsy value인 경우, 기본값을 할당한다. x = x || 0; y = y || 0; return x + y; } console.log(s..
[TIL] 1/3: Inheritance Patterns - 1. ES6/ ES6 new features ▶ ES6 ? ECMAScript 2015 ★ (http://www.ecma-international.org/ecma-262/6.0/index.html - ECMAScript 표준의 가장 최신 버전 - 새로운 언어 문법과 특징이 추가된 주요 업데이트 더보기 (ref: https://blog.asamaru.net/2017/08/14/top-10-es6-features/) * 자바스크립트와 ECMAScript 넷스케이프(Netscape)에서 1995년 개발한 자바스크립트(javascript)는 웹 브라우저에서 동적인 기능을 제공하기 위한 언어다. 현재는 대부분의 브라우저에서 이 언어를 제공하고 있다. 그런데 표준 규격없이 여러 브라우저에서 독자적인 특성이 추가되면서 호환성 문제가 발생하기 시작했다. 이에 E..
자바스크립트 메모리 관리/ 메모리 누수 대처방법 https://engineering.huiseoul.com/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94%EA%B0%80-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC-4%EA%B0%80%EC%A7%80-%ED%9D%94%ED%95%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%88%84%EC%88%98-%EB%8C%80%EC%B2%98%EB%B2%95-5b0d217d788d
[TIL] 12/31: Time Complexity ※ Algorithm(알고리즘): 어떠한 문제를 해결하기 위한 방법 또는 절차들의 모임 - 유한성을 가지며, 언젠가는 끝나야 하는 속성을 가지고 있고, - 연산, 데이터 진행 또는 자동화된 추론을 수행 더보기 (ref: https://opentutorials.org/course/2471/13912) ※ Complexity of an algorithm(알고리즘 복잡도) 특정 알고리즘이 처리해야하는 데이터의 양으로 알고리즘의 효율성(efficiency)을 설명하는 함수 ▶ Time Complexity(시간 복잡도) :입력값 n에 대하여 특정 알고리즘이 문제를 해결하는데 걸리는 시간을 설명하는 함수 - 동작시간을 측정하는 것이 아니라, 입력한 데이터의 크기 n에 따라 기본 연산의 "횟수" 를 측정하는 것입니다..
[JavaScript] Declaring variable (ref: https://www.tutorialsteacher.com/javascript/javascript-variable) Variable means anything that can vary. JavaScript includes variables which hold the data value and it can be changed anytime. JavaScript uses reserved keyword var to declare a variable. A variable must have a unique name. You can assign a value to a variable using equal to (=) operator when you declare it or before using it. ..
[TIL] 12/30: Advanced Data Structure 더보기 (ref: https://www.geeksforgeeks.org/introduction-to-data-structures-10-most-commonly-used-data-structures/ ) 1. Linked List: 선형 구조, 비연속적, 포인터 사용해 각 데이터 연결 •Node(노드) - Data(데이터) - Pointer(포인터): 다음 노드의 주소값이 담긴 변수 •Pointer(포인터): 다음 노드가 어디에 위치하는지 알려주는 표지판 더보기 Array Linked List 장점 데이터 탐색, 정렬 편리 데이터 추가, 삽입, 삭제가 용이 (포인터로 연결) 탐색속도 빠르다 (index로 접근) (비교적) 느리다 Property * Head : 첫 번째 노드 판별 Methods 1. Add..