문서에 있는 내용을 정리해봤습니다.
필요성을 설명 안해도 될 것 같아요. 왜냐면 미션1 자동차 게임 미션을 하면서 다들 느끼셨을 것 같기 때문이죠!
코드가 정말 깔끔해지고 `가독성이 좋아저요.
코드가 짧아지다보니 휴먼 에러가 줄어
듭니다.
한 번 살펴보죠!
- 명령형
for(let i = 0 ; i <10;i++){
...
}
function double (arr) {
return arr.map((item) => item * 2)
}
생산성을 향상
시킬 수 있어요. 자바스크립트에서 함수는 특별하게 취급해요.
- 변수에 할당(assignment)할 수 있다.
- 다른 함수의 인자(argument)로 전달될 수 있다.
- 다른 함수의 결과로서 리턴될 수 있다
함수를 인자(argument)로 받거나 함수를 리턴하는 함수를 말해요.
콜백함수
라고 말해요.// 함수 doubleNum은 func라는 함수를 인자로 받는 고차 함수예요.
function doubleNum(func, num){
...
return func(num);
}
// func는 콜백함수예요.
arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])
const array=[5,10,15];
array.forEach((x,i,t)=>{
console.log(x,i,t)
});
// 출력
// 배열 값, 인덱스, 배열 전체
// 5 0 [5, 10, 15]
// 10 1 [5, 10, 15]
// 15 2 [5, 10, 15]
arr.map(callback(currentValue[, index[, array]])[, thisArg])
const array1 = [1, 4, 9, 16];
// pass a function to map
const map1 = array1.map(x => x * 2);
console.log(map1);
// 출력
// [2, 8, 18, 32]
// 원본 배열 array1은 변하지 않아요.
arr.join([separator])
const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// expected output: "Fire,Air,Water"
console.log(elements.join(''));
// expected output: "FireAirWater"
console.log(elements.join('-'));
// expected output: "Fire-Air-Water"
arr.reduce(callback[, initialValue])
[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array) {
return accumulator + currentValue;
});
arr.sort([compareFunction])
[compareFunction]
을 통해 비교함수를 설정할 수 있습니다.const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
arr.some(callback[, thisArg])
const array = [1, 2, 3, 4, 5];
// array의 요소 중 하나라도 짝수라면 true를 반환합니다.
const result = array.some((element) => element % 2 === 0);
console.log(result);
// expected output: true
[2, 5, 8, 1, 4].some(elem => elem > 10); // false
[12, 5, 8, 1, 4].some(elem => elem > 10); // true
function isBigEnough(element, index, array) {
return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough); // false
[12, 54, 18, 130, 44].every(isBigEnough); // true
arr.includes(*valueToFind*[, *fromIndex*])
const array1 = [1, 2, 3];
console.log(array1.includes(2));
// expected output: true
const pets = ['cat', 'dog', 'bat'];
console.log(pets.includes('cat'));
// expected output: true
console.log(pets.includes('at'));
// expected output: false
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element > 10);
console.log(found);
// expected output: 12
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]
// 비추입니다!
for(let i = 1; i <= 100; i++){
...
}
// 편-안
Array(100).fill().map((x,i) => i+1).forEach((el,idx)=>{
...
})
str.repeat(count);