어떠한 문제를 동일한 구조의 더 작은 문제로 나눌 수 있고,
그 작은 문제를 해결함으로써 전체 문제를 해결하는 방법, recursion
주로 사용
function arrSum(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
function arrSum(arr){
if(arr.length===0)return 0;
else{
const head = arr[0];
const tail = arr.slice(1);
return head + arrSum(tail);
}
- 재귀 함수의 입력값, 출력값 정의
- 문제를 쪼개고 경우의 수를 나누기
- 더 단순한 문제 해결
- 남은 복잡한 문제 해결
JavaScript Object Notation, 데이터 교환을 위해 만들어진 객체 형태 포맷
const message = {
sender: "김코딩",
receiver: "박해커",
message: "해커야 오늘 저녁 같이 먹을래?",
createdAt: "2021-01-12 10:10:10"
}
메시지 객체가 전송 가능하려면, 메시리를 보내는 발산자와 메시지를 받는 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야함
만일 객체에
toString()
메서드 혹은String()
형변환을 시도하면 =>
[object Object]
결과값 반환
그렇기 때문에 위의 방법 대신에
JSON.stringify
: Object => JSON -직렬화
JSON.parse
: JSON => Object -역직렬화
키와 문자열 값은 반드시 큰따옴표로 감싸기
키와 값 사이 / 키:값 쌍 사이에 공백이 있으면 안됨