Backend/JavaScript,NodeJS, Express

[JavaScript] ES6의 유용한 문법 익히기

jellylucy 2022. 11. 2. 20:32

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