드림오구
article thumbnail
🌊 [javascript] 프로토타입 체인
🐣 STUDY/Java Script 2023. 3. 16. 11:29

🌊 프로토타입 체인 : 자바스크립트 엔진의 특성상 객체의 프로퍼티에 접근할 때 해당 객체에 프로퍼티가 없으면 부모 역할을 하는 프로퍼토타입을 순차적으로 탐색한다. __proto__ : 모든 객체는 __proto__ 접근자 프로퍼티를 통해 자신의 프로토타입, 즉 [[Prototype]] 내부 슬롯에 간접적으로 접근할 수 있다. __proto__ 접근자 프로퍼티는 상속을 통해 사용된다. __proto__ 접근자 프로퍼티를 통해 프로토타입을 접근하는 이유는 상호 참조에 의해 프로토타입 체인이 생성되는 것을 방지하기 위해서다. (프로토타입 체인은 단방향으로 구현되어야한다) 모든 객체가 __proto__접근자를 사용할 수 있는 것이 아니기 때문에 __proto__ 접근자 프로퍼티를 코드 내에서 직접 사용하는 것은..

article thumbnail
🌊 [javascript] 배열 고차함수
🐣 STUDY/Java Script 2023. 3. 15. 21:11

🌊 배열 고차 함수 💡 고차함수란? 함수를 인수로 전달받거나 함수를 반환하는 함수를 말한다. 외부 상태의 변경이나 가변 데이터를 피하고 불변성을 지향하는 함수형 프로그래밍에 기반을 둔다. 함수형 프로그래밍은 순수 함수를 통해 부수 효과를 최대한 억제하여 오류를 피하고 프로그램의 안정성을 높이려는 노력의 일환이라고 할 수 있다. Array.prototype.sort (원본 배열 직접 변경) : 배열의 요소를 정렬한다. (기본적으로 오름차순) const jobs = ['teacher', 'programmer', 'engineer', 'singer', 'pilot']; jobs.sort(); console.log(jobs) // ['engineer', 'pilot', 'programmer', 'singer',..

article thumbnail
🌊 [javascript] 프로토타입과 클래스
🐣 STUDY/Java Script 2023. 3. 15. 18:05

🌊 프로토타입과 클래스 : Java Script는 프로토타입(Prototype) 기반 언어이다. → 모든 객체들이 메소드와 속성들을 상속 받기 위해 템플릿으로써 프로토타입 객체를 가진다는 의미 (출처 : MDN) → 너무.. 어려운 말이다..! 여러 자료를 찾아보다 동기분께서 추천해주신 애플코딩의 프로토타입 설명을 듣고 (https://youtu.be/wUgmzvExL_E) 감이 잡힌 것 같다. 클래스와 인스턴스, 프로토타입의 관계 class food { constructor(name, type) { this.name = name; this.type = type; } eat() { console.log(`${this.name}을 맛있게 먹다.`) } } let ogu = new food('chicken'..

article thumbnail
🌊 [javascript] 객체 지향 프로그래밍
🐣 STUDY/Java Script 2023. 3. 15. 14:13

🌊 객체 지향 프로그래밍 객체 지향 vs 절차 지향 객체 지향 (OOP) 절차 지향 (PP) 특징 캡슐화, 상속, 다형성, 추상화 순차적인 처리를 중요시되며, 프로그램 전체가 유기적으로 연결되도록 함 장점 재사용성, 생산성 향상, 자연적인 모델링, 유지보수의 우수성 빠른 실행 속도 단점 느린 개발 속도, 느린 실행 속도, 높은 난이도 유지보수의 어려움, 비효율적 언어 JAVA, Objective-C, Swift, C++, Python, etc. FORTRAN, C 자바스크립트는 객체 지향 언어는 아니지만, 객체 지향 패턴으로 작성할 수 있다. 객체 지향 프로그래밍 (Object Oriented Programming) 사람이 세계를 보고 이해하는 방법을 흉내 낸 방법론 OOP는 프로그램 설계 철학이다. O..

article thumbnail
🌊 [javascript] 클래스와 인스턴스
🐣 STUDY/Java Script 2023. 3. 15. 12:28

🌊 클래스와 인스턴스 객체지향 프로그래밍 하나의 모델이 되는 청사진을 만들고 → class 그 청사진을 바탕으로 한 객체를 만드는 → instance 프로그래밍 패턴 // class function Fishbread(ingredients) {} // instance let shouboong = new Fishbread('puff'); let redbeanboong = new Fishbread('redbean'); 새로운 인스턴스를 생성할 때 new 키워드를 사용하여 만든다. ES5와 ES6의 생성자 함수 생성자 함수는 return 값을 만들지 않는다. 최근에는 ES6 방식을 주로 사용한다. // 💡 ES5 function Fishbread(ingredient, time){ // 인스턴스가 만들어질 때 실..

article thumbnail
🌊 [javascript] 프로그래머스 - 중복된 숫자 개수
🐣 STUDY/Algorithm 2023. 3. 14. 00:12

🌊 중복된 숫자 개수 - Lv.0 🐤 문제 설명 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요 🐣 제한사항 1 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 1,000 0 ≤ n ≤ 1,000 🐥 입출력 예 array n result [1, 1, 2, 3, 4, 5] 1 2 [0, 2, 3, 4] 1 0 🐋 입출력 예 설명 입출력 예 #1 [1, 1, 2, 3, 4, 5] 에는 1이 2개 있습니다. 입출력 예 #2 [0, 2, 3, 4] 에는 1이 0개 있습니다. 🐳 나의 풀이 const solution = (array, n) => { let result = 0; for(let i ..

article thumbnail
🌊 [javascript] 프로그래머스 - 점의 위치 구하기
🐣 STUDY/Algorithm 2023. 3. 13. 23:50

🌊 점의 위치 구하기 - Lv.0 🐤 문제 설명 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다. x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다. x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다. x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요. 🐣 제한사항 dot의 길이 = 2 dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다 -50..

article thumbnail
🌊 [javascript] 함수
🐣 STUDY/Java Script 2023. 3. 13. 23:00

🌊 함수 : 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 함수는 몇 번이든 호출 할 수 있으므로 코드의 재사용의 측면에서 매우 유용하다. 함수의 특징 함수를 사용하는 이유 유지보수의 편의성 향상 코드의 신뢰성 향상 코드의 가독성 향상 함수 리터럴 // 변수에 함수 리터럴 할당 const calculate = function multifly(x, y) { return x * y; } 함수 이름 + 매개변수 + 함수 몸체로 이루어져있다. 함수 이름 함수 이름은 생략할 수 있으며 이름이 없는 함수를 '무명 함수'라고 부른다 함수 이름은 식별자이며 식별자 네이밍 규칙을 준수해야 한다. 매개변수 0개 이상의 매개변수를 소괄호로 감싸고 쉼표로 구분한다. 함수를 호출할 때 지정한..