: 자기자신을 호출하는 함수
재귀로 문제 해결하기
ex)[1,2,3] 배열 안 숫자 더하기
sum([1,2,3]) / 1+sum([2,3])….
1+sum([2,3]) / 2+sum([3]) / 3+sum([])
return arr.shift()+sum(arr)
재귀를 사용하기 적합한 상황
재귀적으로 사고하기
function recrusive(n){
//base case: 문제를 더이상 쪼갤 수 없을 경우
if(문제를 더이상 쪼갤 수 없을 경우){
return 단순한 문제의 해답;
}
//recrusive case: 그렇지 않은 경우
return 더작은 문제로 새롭게 정의된 문제
}
: 서로 다른 프로그램 사이에서 데이터 교환을 위해 만들어진 객체 형태의 포맷
전송가능한 조건
-수신자와 발신자가 같은 프로그램을 사용한다.
-또는, 문자열처럼 볌용적으로 읽을 수 있어야한다.
const message = {
sender: "김나",
receiver: "박나"
}
객체 타입 변환을 이용해 String
으로 변환할 경우 객체 내용을 포함하지 않는다.
이를 해결하는 방법
let transferableMessage = JSON.stringify(message)
console.log(transferableMessage) //`{"sender":"김나","receiver":"박나"}`
console.log(typeof(transferableMessage)) // `string`
=> stringify하는 과정을 직렬화라고 한다.let two= `{"sender":"김나","receiver":"박나"}`
let obj = JSON.parse(two)
console.log(obj)
/*{
sender: "김나",
receiver: "박나"
}*/
console.log(typeof(obj)) // `object`
=> JSON.parse하는 과정을 역직렬화한다고 한다.