반응형

IT 125

고차 함수 그리고 중첩 함수

고차 함수(Higher Order Function; HOF) 고차 함수는 함수를 인자(argument)로 받거나 함수를 리턴하는 함수이다. 다른 함수(caller)의 인자로 전달되는 함수를 콜백 함수(callback function)라고 한다. 콜백 함수를 전달받은 함수는 이 콜백 함수를 필요한 시점에 호출하거나, 클로저를 생성하여 반환한다. 클로저 MDN의 정의는 다음과 같다. “A closure is the combination of a function and the lexical environment within which that function was declared.” 클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경(Lexical environment)과의 조합이다. 여기서 함수는 내부 ..

IT/JS 2021.08.10

primitive & reference 차이점 그리고 garbage collector에 대하여

Primitive (원시의) 값과 Reference (참조) 값의 차이점 JS에는 7가지의 자료형이 있다. 나는 이것을 스불ㄴ,,너어우스!! (쓰불넘쓰)라고 부른다.. 변수 타입의 앞글자에 내 마음대로 음절을 만든 것인데 이렇게 만든 이유는 그냥 외우기 쉬워서 그랬다.. 스(S:string) - 문자열 불(B:boolean) - 불리언 ㄴ(N:number) - 숫자 너(N:null) - null 어(U:undefined) - undefined 우(O:object) - object 쓰(S:symbol) - symbol 여기서 Primitive 값(원시 값)은 object를 제외한 나머지 타입들을 말한다. 따라서 Reference 값(참조 값)은 object이다. 원시 값은 실제 자료를 가리키며, 참조 값은..

IT/JS 2021.08.10

npm install에 대하여

npm이란? npm은 Node Package Manager의 약자로, 자바스크립트 언어를 위한 패키지 관리자이다. Node.js의 패키지 생태계인 npm은 세계에서 가장 큰 오픈 소스 라이브러리 생테계이기도 하다. NodeJS에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할을 하며, 설치와 관리를 수행할 수 있는 CLI(Command Line Interface)를 제공한다. 서드파티(주 기술을 이용하여 파생되는 따위의 것들을 생산하는 집단) 모듈을 패키지라고 한다. 그리고 모든 패키지엔 package.json 파일이 있다. npm install + no arguments npm install를 실행하면 package.json의 dependencies 필드 정보를 기반으로 직접 패키지를 생성한..

IT/JS 2021.08.09

JS에서의 this란 무엇일까?

MDN에서 function.prototype.apply()에 대해 공부하면서 폭풍 검색을 하던 중 this에 대해 공부하게 되었다. this는 메소드를 호출한 객체를 담는 속성이다. this를 함수의 이자로 넘기어 this의 값들을 사용하고, 변경할 수 있다는 것이다. 또한 메소드를 호출한 객체가 무엇이냐에 따라 value와 this.value가 같을 수도, 달라질 수도 있다. this가 만들어지는 5가지의 경우를 통해 이해해보려고 한다. 일반 함수에서의 this 중첩 함수에서의 this 이벤트에서의 this 메소드에서의 this 메소드 내부의 중첩 함수에서의 this 1. 일반 함수에서의 this var value = 10; function case1 () { this.value = 11; value ..

IT/JS 2021.07.26

코딩할때 개선할 점 모음

불필요한 주석 제거한다. 꼭 필요한 것이 아니라면 주석 달지 않도록 한다! 변수 정의할 때 var 사용 자제한다. const, let이 나온 이후 var은 잘 사용하지 않는다. 함수 안에서, 밖에서 재할당 되는 값인지 생각하고 일관성을 갖자. 변수의 이름을 지을 때, 제 3자가 봐도 쉽게 이해할 수 있도록 작성하자. 변수의 이름이 길어지는 것에 두려워말자! 할당된 변수는 재할당하지 않는다. 코드가 길고 복잡한 경우, 예상치 못한 결과가 발생될 수 있다! class name을 작성할 때, camel case가 아닌 kebab case로 작성한다. 일반적인 컨벤션이라고 한다! 가독성에 신경쓰자. 책을 쓴다고 생각하자! 함수를 빠져나올 때는 return! 함수 안에 for문에서 볼일 다 봤으면(?) retur..

IT/JS 2021.07.24

null의 타입, trim()

null의 타입이 object인 이유 JS의 값들은 tag와 value의 형태로 표현되었다. 오브젝트의 태그 값은 0이었고, null은 null pointer로 표현되었다. 대부분의 플랫폼에서는 0x00이라는 값이 주어진다(이 형태가 무엇을 의미하는지는 더 알아봐야겠다). 결론적으로 null은 태그 값으로 0을 가지게 되어서 typeof(null)은 object를 반환하는 것이라고 한다. 이에 대한 수정이 ECMAScript에 요청되었지만, 거부되었다고 한다..? 왜일까.. String.prototype.trim() trim() 문자열의 시작과 끝 부분의 공백을 제거하여 반환한다. trimStart() 시작 부분만 제거 trimEnd() 끝 부분만 제거 출처 https://developer.mozilla..

IT/JS 2021.07.22

프로그래머스) 내적

https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 풀이 a 배열을 원소 a와 인덱스 i로 맵핑해서 각 값에 b[i]를 곱한다. 바로 reduce로 a 배열을 누산한다(초기값 0으로 설정). var solution = (a, b) => a.map((a,i) => a * b[i]).reduce((acc,cv)=>{return acc..

IT/Algorithm 2021.07.06

프로그래머스) 로또의 최고 순위와 최저 순위

https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 풀이 일치하는 번호의 배열 cor_list와 가려져 보이지 않는 배열 zero_list를 만들었다. win_nums에 대한 forEach 메소드로 값과 인덱스를 불러왔다. 그리고 lottos 배열에도 들어있는 숫자들을 cor_list에 넣었다. lottos의 가려진 숫자 0은 zero_list에 넣었다. 최고 순위는..

IT/Algorithm 2021.07.06

프로그래머스) [1차] 비밀지도

https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 풀이 arr1과 arr2 두 배열을 각각 2로 계속 나누어 나머지가 1이면 1, 없다면 0을 새로운 배열에 집어넣었다. 그렇게 2진수로 변환하여 for문을 돌려 각 자리마다 2진수를 더했고 1 이상인 경우 #을, 0이라면 공백을 집어넣었다. 마지막으로 join('')을 사용하여 배열을 문자열로 변환하였다. ㅠㅠ 2진수로 변환하는 과정을 간소화할 방법이 떠..

IT/Algorithm 2021.07.05
반응형