기본형
Number
,Boolean
,Null
,undefined
참조형
Array
,Object
,Function
var x = 100; var y = x; x = 99; console.log(y); // 100
y의 값은 변경되지 않음
var x = {count: 100}; var y = x; x.count = 99; console.log(y.count); // 99
x와 y는 동일한 참조를 담고 있고, 동일한 객체를 가르킨다.
var arr1 = [0, 1, 2, 3]; var arr2 = arr1; arr2.push(4); console.log(arr1 === arr2); // true
arr2 = arr1
와 같이 대입을 통해 복사 한 뒤, arr2
에 push(4)
를 하였지만,
arr1
도 arr2
와 같이 [0, 1, 2, 3, 4]
의 배열을 갖게 된다.
map()
/ filter()
map()
map()
메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열로 반환한다.
기본형
const arr1 = [1, 4, 9, 16]; const map1 = arr1.map(x => x * 2); console.log(map1); // [2, 8, 18, 32]
구문
Array.prototype.map(callback, [thisArg]); // callback: function(currentValue, index, array)
filter()
filter()
메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다.
기본형
const text = ['Hello', '안녕', 'Hi', 'Bye']; const result = text.filter(txt => txt.length > 2); console.log(result); // ['Hello', 'Bye']
map()
과 같은 개념으로 사용할 수 있고, 함수의 이름 그래도 필터링에 적합하다.