[한달복습] 1-3

i do as i say·2020년 3월 30일
0

Achievement Goals🥳

  • 문자열과 숫자를 메소드를 이용해 원하는 형태로 만들 수 있다.
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
  • 배열의 앞/뒤에 element를 추가 또는 삭제할 수 있다.
let array = [1, 2, 3, 4];
array.pop();
array.push(1);
array.shift();
array.unshift(1);
  • 불변성의 의미를 이해하고, 어떤 메소드가 Mutable/Immutable 한지 알수 있다.
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]
  • for문을 대체하여, forEach, map, filter, reduce, slice 등의 메소드를 이용해 * 배열을 원하는 형태로 만들 수 있다.
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'

//좌우 공백을 없애 줌
  • match (advanced)
//문자열 함수
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와 같음.

//문자열 안에서 검색할 단어, 찾고 싶은 단어가 있다면 이를 알려 줌.
  • replace (advanced)
//지정한 패턴에 내가 주입한 패턴으로 바꿀 수 있다.
//정규표현식인 경우, 패턴 전체가 바뀌지만 문자열인 경우엔 첫 번재 문자열만 바뀐다.
str.replace('o', '0');
//"hell0, my name is leeyujeong"
const a = /o/gi;
str.replace(a, '0');
//"hell0, my name is leeyuje0ng"
  • 정규표현식 (advanced)
    이것도 나중으로 킵. 너무 광범위하다.
profile
커신이 고칼로리

0개의 댓글