전체보기
-
[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] //..
-
200910_TIL오로지 개발/TIL 2020. 9. 11. 00:54
Today I Learned JavaScript prototype 자바스크립트의 객체는 모두 부모를 갖고 있고, 연결되어 있다. 부모 객체를 prototype 이라고 한다. 자바스크립트에서 거의 모든 객체는 Object의 인스턴스이다. (Object가 가장 선조라는 이야기) 객체는 Object.prototype에서 속성과 메소드를 상속받는다. 즉 자식도 속성과 메소드를 사용할 수 있다. __proto__는 사실 크롬 브라우저에서 사용하는 프로퍼티명이다. ECMAScript에서는 [[prototype]]이란 이름으로 사용된다. prototype과 __proto__의 차이 prototype은 클래스 생성자의 속성. OOP의 기본이 되는 blueprint를 제공한다. prototype은 함수만 갖고 있는 프로..
-
200909_TIL오로지 개발/TIL 2020. 9. 9. 19:14
오늘 배운 것 지금 내 옆에는 차가운 맥주가 있다. 이 맥주가 식기 전에 TIL(아니고 일기)를 마무리하고 곁으로 갈 것이야. 오늘은 매우 힘에 부치는 날이었다. 머리속은 포화상태고, 잘 따라가고 있는건지 확신도 서지않고 할건 스택마냥 쌓여가는 이 상황에 결과값이 명확하지 않음이 나를 너무 힘들게 했다. 글도 못쓰겠고 (블로그로 정리하는거 왜이렇게 어려운건지..) 다른 사람들이 쓰는 블로그보면 예쁘고 잘 읽히게 써놨던데ㅠㅠ 엉엉 이런 생각들로 하루종일 미간에 주름이 잔뜩 잡혀있었다. 그래서 다섯시쯤 편의점에 가서 맥주를 샀다. 호다닥 달려가서 사왔다. 그리고 오늘 일과가 끝나면 나에게 보상을 주리라!! 생각하고 글을 다시 쓰기 시작했다. 지금은 기분이 너무 좋다. 맥주때문인지 몰라도 그냥 기분이 좋아지기..
-
[JavaScript] 객체 지향 프로그래밍이란 무엇인가오로지 개발/JavaScript 2020. 9. 9. 17:43
Object Oriented Programming 자바를 배울 때부터 항상 OOP에 대한 개념을 이해하기 어려웠다. 면접 때 나온다고 하니까 무작정 외우기도 했었고.. 하지만 오늘 글로 정리를 하니 퍼즐이 맞춰지는 듯한 기분이 들었다. 일단 기본적으로 가져가야 할 것은 OOP는 개념, 하나의 철학이라는 것. 따라서 개념과 그 개념을 적용하고 응용하는 상황을 구분해서 생각할 필요가 있는 것 같다. Object 객체를 그 원래의 의미로 사물 혹은 물건, OOP란 사물을 생산하는 방식이라고 생각하기로 했다. OOP에는 클래스 기반 언어와 프로토타입 기반 언어가 있다. 클래스 기반 언어에는 대표적인 C++, java, dart 등이 있고, 프로토타입 기반 언어로는 자바스크립트가 있다. 로는 Java, C++, ..
-
200908_TIL오로지 개발/TIL 2020. 9. 9. 01:21
오늘 배운 것 & 느낀 점 자료구조 마지막 날. BST를 구현하면서 재귀에 대해 또 한 번 생각했다.(아련) 개념을 여러 번 듣고 구현도 해보았지만, 막상 닥치면 툭 하고 나오지 않던 개념.. 스택에 대해 알고 나니 재귀 함수가 전부 실행되고 '빠져나온다'라고 표현하는지 또, 빠져나오면서 어떻게 실행되는지 (조금이나마) 더 잘 이해할 수 있었다. 자료구조는 개념이고, 그 개념 자체를 잘 이해하는 것이 제일 중요하다는 것. 그리고 그 개념들의 실생활 예시를 알아두고 어떤 자료구조가 어떻게 쓰이는지, 적재적소에 쓰였는지 정도를 구분해낼 수 있다면 좋다. 이 두 가지를 생각하고 나니 내가 어떤 방향으로 학습한 것에 대해 남겨야 하는지 생각이 많아졌다. 일단 오늘 배운 것은 복잡도 분석 중 시간 복잡도 그중 가..
-
[Data Structure] 스택오버플로우로 알아보는 stack과 recursion오로지 개발/JavaScript 2020. 9. 9. 01:00
스택오버플로우라는 사이트가 있다. 이 사이트는 기적과도 같은 곳이다. 전세계 모든 개발자들이(영어를 못해도) 그저 찾아뵙고 주기적으로 문안인사 올리는 곳이랄까.. 심지어 개발자를 꿈꾸는 나조차 거의 주기적으로 찾아뵙고 인사 올리고 있으니.. 암턴 거기에 있는 Stack이 오늘 다룰 이 Stack이다. 그래서 말나온김에 Stack overflow 라는 의미가 어떤 것인지 살펴보자. stack은 자료 구조의 한 종류인데, 이 stack에서 원래 할당된 메모리 공간보다 많은 데이터가 들어갈 경우 이를 받아들이지 못하고 오류가 발생하는 것을 의미한다. stack의 크기를 초과해서 계속해서 데이터를 쌓아버리게 되면 stack overflow라는 에러를 내면서 프로그램이 약간 자신의 본분을 다 하지 못하게 되어버리..