75

코드 스타일링

Google JavaScript Style Guide Airbnb JavaScript Style Guide The Modern JavaScript Tutorial - Coding Styling NHN 코딩 컨벤션 - HTML / CSS NHN 코딩 컨벤션 - Javascript 그 중 기억하고 싶은 것 몇 가지 적어보자면, 1. 들여쓰기는 space 2번이 대세. 2. boolean이 할당된 변수는 is 혹은 are을 붙이기 ex) let isDog = true; 3. 함수 이름은 동사로 시작하게 4. 상수는 모두 대문자로 적기 5. 줄 바꿈이 필요한 문자열은 백틱 사용 6. if, for, while 문의 끝에는 세미콜론 사용 x

2021.02.02

Array.reduce()

reduce는 다른 것들에 비해서 좀 더 어렵게 느껴지기에, 따로 정리한다. arr.reduce(callback[, initialValue]) callback 함수는 네 개의 인자를 가짐. 1) 누산기 (acc) 2) 현재 값 (cur) 3) 현재 인덱스 (idx) 4) 원본 배열 (src) 내가 이해한 reduce는 다음과 같다. 1) 하나의 값으로 모아야 할 때 사용 2) 첫 번째 인자는 모으는데 사용하고, 두 번째 인자는 모을 것을 지칭하는 데에 사용 3) 무조건 callback 함수의 return 값을 다음 acc 인자에 전달한다.

고차 함수 상세

1. forEach arr.forEach(callback(currentvalue[, index[, array]])[, thisArg]) 주어진 함수를 배열 요소 각각에 대해 실행한다. 2. find arr.find(callback[, thisArg]) 주어진 판별 함수를 만족하는 첫 번째 요소의 값을 반환하며, 그런 요소가 없다면 undefined를 반환 3. filter arr.filter(callback(element[, index[, array]])[, thisArg]) 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환 4. map arr.map(callback(currentValue[, index[, array]])[, thisArg]) 배열 내의 모든 요소 각각에 대하여 주어..

고차 함수(Higher Order Function) / 커링과 클로져 차이

함수를 인자로 받거나 함수를 리턴하는 함수 이때, 다른 함수의 인자로 전달되는 함수를 특별히 콜백 함수라고 한다. 반면, 함수를 리턴하는 함수를 커리 함수라고 한다. 위 정의에 따르면, 고차 함수의 형태는 세 가지가 있다. 1. 다른 함수를 인자로 받는 경우 (double은 new_func의 콜백 함수) function double(num) { return num * 2; } function new_func(func, num) { // 8 console.log(output); // -> 8 //함수는 일급 객체, 따라서 함수를 변수에 지정 가능. const add3 = adder(3); output = add3(2); console.log(output); // -> 5 3. 함수를 인자로 받고, 함수를 ..

arguments object과 array like object

function getAllParamsByRestParameter(...args) { return args; } function getAllParamsByArgumentsObj() { return arguments; // 기록해두기 } const restParams = getAllParamsByRestParameter('first', 'second', 'third'); const argumentsObj = getAllParamsByArgumentsObj('first', 'second', 'third'); 위의 코드에서 restParams는 array를 리턴하고, argumentsObj는 object를 리턴한다. 구글 개발자 모드로 둘을 확인해보았더니 어딘가 다르다는 것을 알 수 있었다. arguments..

Object.assign과 Shallow/Deep copy

Object.assign(target, ...sources) 이 메소드는 source object들의 enumerable한 property를 target object에 shallow copy한다. (확실한 표현을 위해 영어를 사용함) enuerable : for.. in...과 같은 operator로 뽑아낼 수 있는 것. (아직 잘 모르겠지만 object를 만들 때, 숨겨진 속성들이 만들어지는 듯 하다) shallow copy : 얕은 복사라고 하던데, 대상 object의 가장 바깥 층위만 복사하는 것으로 보인다. 따라서 객체 안에 property로 객체가 있다면, 객체 안의 객체는 주소 값이 그대로 따라온다. 따라서 복사된 객체에서 객체 안의 객체를 수정하게 되면 원 객체에도 수정이 된다. 자세한 설명..