let str = 'banana';
let a = str.slice(2);
a;// 'nana'
let b = str.split('');
b; // ['b', 'a', 'n', 'a', 'n', 'a']
let num = 12.2;
let a = Math.floor(num); //12
let b = Math.trunc(num); //12
let minusNum = -12;
let c = MAth.abs(num) //12
let array = [1, 2, 3, 4];
let object = {a:1, b:2, c:3};
Array.isArray(array); //true
Array.isArray(object); //false
let object = {a:1, b:2, c:3};
'a' in obj; //true
'd' in obj; //false
let array = [1, 2, 3, 4];
array.pop();
array.push(1);
array.shift();
array.unshift(1);
let array = [1, 2, 3, 4];
//불변성. 메소드를 사용해도 기존의 배열이 망가지지 않음.
//map, reduce, split, filter 등
array.map(a => a + 1); //[2, 3, 4, 5]
array// [1, 2, 3, 4]
//변성. 메소드를 사용하면 기존의 배열이 변형됨.
array.push(5);
array; // [1, 2, 3, 4, 5]
let arr = [1, 2, 3, 4];
//forEach
let newArr = new Array;
arr.forEach(ele => {if(ele>1){return newArr.push(ele);}}); //[1, 2, 3, 4]
//map
let newArr = arr.map(ele => ele + 1); //[2, 3, 4, 5]
//filter
let newArr = arr.filter(ele => ele % 2 = 0); //[1, 3]
//reduce
let num = arr.reduce((acc, cur) => acc + cur); // 10
//slice
let newArr = arr.slice(2) // [3, 4]
불변성을 유지하는 것이 왜 좋은지 이해할 수 있다 (advanced)
(https://evan-moon.github.io/2020/01/05/what-is-immutable/)
무분별한 상태의 변화를 막을 수 있고, 상태 변경을 추적하기 쉽다.
함수형 프로그래밍의 특징을 이해할 수 있다
프로그래밍의 여러 패러다임 중 하나. 함수를 이용하여 프로그래밍 하는 것을 의미.
말 그대로 함수만을 사용하여 프로그래밍을 하는 건데, 상태와 가변 데이터를 멀리하고, 함수의 응용을 강조한다.
함수형 프로그래밍은 사이드 이펙트가 없는, 함수의 실행이 외부에 영향을 끼치지 않게 하는 순수한 함수를 취급한다.
//함수를 인자로 넘기는 방법: 콜백 함수
setTimeout(callback, 3000);
function callback() {
console.log('콜백입니다.')
}
let numArr = arr.reduce(function(acc, cur) {
return acc + cur;
},0);
//ES6
let numArr = arr.reduce((acc,cur) => acc + cur);
//콜백 따로 지정 가능
let numArr = arr.reduce(callback);
let callback = function(acc,cur) {
return acc + cur
};
callback 이라는 용어에 대해 이해할 수 있다. (advanced)
말 그대로 call을 해서 back을 하는 함수.. 함수 바깥의 어떠한 곳에 저장되어 있다가 필요할 때 불러서 사용할 수 있게 함. 모든 함수는 콜백을 할 수 있음.
trim, 공백 문자(탭 문자(\t), Carrige return(\r\n), return 문자(\n)
//문자열 함수
let a = ' hello ';
a.trim();
a// 'hello'
//좌우 공백을 없애 줌
//문자열 함수
let str = 'hello, my name is leeyujeong';
str.match('h');
//["h", index: 0, input: "hello, my name is leeyujeong", groups: undefined]
//이런 식으로 배열 형식으로 나오네.
str.match('h');
//4 인덱스 번호로만 알려 줌. indexOf와 같음.
//문자열 안에서 검색할 단어, 찾고 싶은 단어가 있다면 이를 알려 줌.
//지정한 패턴에 내가 주입한 패턴으로 바꿀 수 있다.
//정규표현식인 경우, 패턴 전체가 바뀌지만 문자열인 경우엔 첫 번재 문자열만 바뀐다.
str.replace('o', '0');
//"hell0, my name is leeyujeong"
const a = /o/gi;
str.replace(a, '0');
//"hell0, my name is leeyuje0ng"