오로지 개발/JavaScript
-
[JavaScript] this, call(), apply(), bind()오로지 개발/JavaScript 2020. 9. 18. 23:53
현재 실행 문맥을 알려주는 this Java의 this와는 다르다. (그래서 헷갈렸다.) ✿ JS에서는 함수가 호출될 때, 암묵적으로 arguments 객체와 this를 전달받는다. ✿ 함수 호출방식에 따라 this가 연결되는 객체가 달라진다. 즉 동적으로 결정된다. ❀ 여러 방식들을 관통하는 가장 핵심은 ' this 는 자신이 소속된 객체를 가리킨다' ✿ 함수의 상위 스코프를 결정하는 방식을 렉시컬 스코프(Lexical scope)라고 하는데, 함수를 선언할 때 결정된다. ✿ 웹 브라우저의 가장 상위 객체는 window 이다. (이유는 없다. 그냥 JS는 그렇게 설계가 된 언어) ✿ 서버에서 가장 상위 객체는 global 이다. (Node.js) ❀ 웹 브라우저 콘솔창에 this를 입력하면 window..
-
[JavaScript] Arrow function expressions 화살표 함수오로지 개발/JavaScript 2020. 9. 18. 21:04
MDN문서 기반으로 공부한 내용 중 이해한 부분을 정리한 포스트입니다. Arrow Function Expression ✿ ECMAScript 6 이후 등장 ❀ ES6는 2015년에 개정된 문법(ES6는 매년 6월에 개정되고 있음, 현재 ES11까지 나옴) ❀ ES6는 현재 자바스크립트 프로그래밍의 이해에 중요한 요소가 되기 때문에 계속 언급될 예정 (ES6에서 그 전까지 문제가 되었던 부분들이 해결되었고, 기능들이 상당히 추가되었다.) 기존 함수 표현에 비해 구문이 짧아질 수 있다. const number = [1,2,3,4,5,6,7,8,9,10] //1) 기존 function 방식 number.filter(function(el) { return el % 2 }); //[1 ,3, 5, 7, 9] //..
-
[JavaScript] 객체 지향 프로그래밍이란 무엇인가오로지 개발/JavaScript 2020. 9. 9. 17:43
Object Oriented Programming 자바를 배울 때부터 항상 OOP에 대한 개념을 이해하기 어려웠다. 면접 때 나온다고 하니까 무작정 외우기도 했었고.. 하지만 오늘 글로 정리를 하니 퍼즐이 맞춰지는 듯한 기분이 들었다. 일단 기본적으로 가져가야 할 것은 OOP는 개념, 하나의 철학이라는 것. 따라서 개념과 그 개념을 적용하고 응용하는 상황을 구분해서 생각할 필요가 있는 것 같다. Object 객체를 그 원래의 의미로 사물 혹은 물건, OOP란 사물을 생산하는 방식이라고 생각하기로 했다. OOP에는 클래스 기반 언어와 프로토타입 기반 언어가 있다. 클래스 기반 언어에는 대표적인 C++, java, dart 등이 있고, 프로토타입 기반 언어로는 자바스크립트가 있다. 로는 Java, C++, ..
-
[Data Structure] 스택오버플로우로 알아보는 stack과 recursion오로지 개발/JavaScript 2020. 9. 9. 01:00
스택오버플로우라는 사이트가 있다. 이 사이트는 기적과도 같은 곳이다. 전세계 모든 개발자들이(영어를 못해도) 그저 찾아뵙고 주기적으로 문안인사 올리는 곳이랄까.. 심지어 개발자를 꿈꾸는 나조차 거의 주기적으로 찾아뵙고 인사 올리고 있으니.. 암턴 거기에 있는 Stack이 오늘 다룰 이 Stack이다. 그래서 말나온김에 Stack overflow 라는 의미가 어떤 것인지 살펴보자. stack은 자료 구조의 한 종류인데, 이 stack에서 원래 할당된 메모리 공간보다 많은 데이터가 들어갈 경우 이를 받아들이지 못하고 오류가 발생하는 것을 의미한다. stack의 크기를 초과해서 계속해서 데이터를 쌓아버리게 되면 stack overflow라는 에러를 내면서 프로그램이 약간 자신의 본분을 다 하지 못하게 되어버리..
-
[Data Structure] Binary Search Tree 이진 탐색 트리오로지 개발/JavaScript 2020. 9. 8. 14:32
병뚜껑 숫자 맞추기 게임이 있다. 어떤이는 한잔을 마시게 하기 위해 up and down을 외치고 또 어떤이는 마시지 않기 위해 필사적으로 범위를 좁혀가며 숫자를 맞춰야만 한다. 가장 적은 횟수의 추측으로 이 숫자를 알아내야만 한다. 아무도 1부터 시작해서 순서대로 2, 3, 4... 를 외치는 사람은 없다. -> 요게 단순탐색 보통 1~50 사이의 숫자가 표기되어 있다.(소주병 기준) 그럼 50의 중간, 25부터 시작한다. up이라고 외치면 1부터 25까지의 숫자는 답이 아니고, down이라고 외치면 26부터 50이 답이 아니게 된다. 그렇게 또 up and down에 맞춰 반절씩 범위를 좁혀 나가는 것이 이진 탐색이다. 한 번에 많은 숫자를 답에서 제거해버리기 때문에 이 방법으로 맞출 경우 최대 6번..
-
자바스크립트 배열 메소드 정리오로지 개발/JavaScript 2020. 8. 20. 00:15
자바스크립트에 기본적으로 내장 되어있는 배열 메소드 몇 개를 정리해보자. 먼저 정리하기 전에 항간에 떠도는 아주 좋은 짤을 주워왔다. 아주 그냥 한번에 이해가 될거 같지만.. 사실 실습하고 직접 코드를 구현해봐야 정확한 메소드 이해가 된다. 다양한 예제와 설명은 MDN에 잘 되어있으니 참고하시면 좋다. map filter reduce find findIndex fill copyWithin some / every 사실 이렇게 간단하게 쓰이지도 않을 뿐더러(절대절대) 보통은 해당 메소드가 함수로 실행되어 또 다른 함수의 인자 값으로 리턴되게 하는 경우가 많아서 까다롭다.. 그래서 원리 이해가 더 중요한거 같다. 아래 그림은 원리 이해가 한번에 팍 되는..