Array.prototype.reduce()
reduce() 메서드는 배열의 각 요소에 대해 주어진 reducer 함수를 실행하고, 하나의 결과값을 반환한다.
const array1 = [1,2,3,4];
const initialValue = 0;
const sumWithInitial = array1.reduce(
(previousValue, currentValue) => previousValue + currentValue, initialValue
);
console.log(sumWithInitial);
기대되는 결과값은 array1의 값을 모두 더한 값이 된다.
처음 더해지는 값은 두번째 인자 initialValue이고 그 다음부터 previousValue + currentValue가 더해진다.
initialValue : Optional 인자
Callback의 최초 호출에서 첫 번째 인수에 제공하는 값이지만
이 것을 제공하지 않으면 배열의 첫번째 요소를 사용한다.
하지만 빈 배열에서 초기값없이 reduce() 호출 시 오류 발생한다.
객체 초기자
new Object(), Object.create() 또는 literal 표기법을 사용해 초기화될 수 있다.
객체 초기자는 중괄호 {}로 묶인 0개의 이상의 객체의 프로퍼티명과 관련 값의 쌍을 콤마로 구분한 목록이다.
const object1 = {a : 'foo', b: 42, c: {}},
console.log(object1.a); //foo
const a = 'foo';
const b = 42;
const c = {};
const object2 = {a: a,b: b,c: c};
console.log(object2.b);//42
const object3 = {a, b, c};
console.log(object3.a);//foo
그래서 이를 활용하면, key value 값이 같은 경우 변수명 1개만 작성해도 무방하다 :)
===
== 보다 더 엄격한 연산자이다.
주된 차이점은 숫자를 숫자 리터럴과 비교하면 ==는 허용하지만 ===는 변수의 유형까지 확인하므로 false이다.
==의 경우
1 == "1" //true
0 == false //true
0 == null; //false
0 == undefined // false
const object1 = {"key" : "value"}
const object2 = {"key" : "value"}
object1 == object2 //false
object2 == object2 //true
===의 경우
0 === false //false
2 === "2" //false
'Backend > JavaScript,NodeJS, Express' 카테고리의 다른 글
[javaScript] 자료구조, 이차원 배열, 이차원 Object (0) | 2023.04.18 |
---|---|
[JavaScript] 실행 컨텍스트와 자바스크립트의 동작원리 (0) | 2022.11.15 |
[JavaScript] TestCode 작성하기 (0) | 2022.10.05 |
[Express] Node.js 서버에 Google OAuth 2.0 로그인하기 (0) | 2022.09.15 |
[NodeJS] Multer 와 S3로 이미지 처리하기 (0) | 2022.04.28 |