TIL : 210616_수_(재귀2 StringfyJSON)

beablessing·2021년 6월 16일
0

TIL

목록 보기
8/33
post-thumbnail

오늘배운것

  • JSON / Stirngify
  • JSON구조는 Tree구조이다. (즉, 재귀함수를 사용할 수 있다!!)
  • JSON.stringify 그리고 JSON.parse를 이용하여 자바스크립트값과 JSON값을 사용한다.

JSON

JavaScript Object Notation.
데이터 교환을 위해 만들어진 객체형식의 포맷이다.

  • JSON.stringify : Object type을 JSON로 변환. //직렬화(serialize)
  • JSON.parser : JSON을 Object type으로 변환. //역직렬화(deserialize)
  • JSON의 기본형태
let packet = `{"sender":"김코딩","reveiver":"박해커","msg":"밥묵자!"}`
(==> 백틱이 중괄호를 감싸고 있고 / key와value에 모두 "")
  • 키와 값 사이, 키-값 쌍 사이에는 공백이 없어야 한다.

template literal

===> 배열에 스트링을 붙여보자 !!!

예시) let obj = [1,2,3]

${obj}안에 객체(배열 또는 진짜 객체)를 입력받는 경우 , 객체의 문자열로 변환하여 대입한다.

  1. obj가 배열인경우에는,
    템리터럴을 사용해도 겉에 '[1,2,3]' 이러한 결과 가 나오지 않는다.
    템리터럴이 붙는순간, 배열이 걷히고 + 요소에 문자열이 한번 붙은 값이 나오게 됨
    즉, 코드로 예시를 보면
let obj = ["1",2,3];
`${obj}` = "1,2,3" ; //중첩이 몇번이 되어도 다 벗겨지고 스트링화됨.
  1. 나중에 [${}] 이러한 작업을 하기 위해, 즉 템리터럴이 한번더 붙어야 하기 때문에
    문자열을 한번더 중첩시켜준다. 그리고 []브라켓으로 감싸 배열로 만들어준다 (빈배열인경우를 위해)

  2. 마지막으로 배열이 걷히고, 문자열이 1겹 걷히고 []브라켓을 추가로 넣어준다.
    그러면 obj에 ''리터럴이 붙은형태인 '[1,2,3]'이 출력된다.

Extra

  • null의 문자열변환
var value = null;
String(null) // "null"
value.toString() //typeerror!!! 
  • null의 타입구분.
typeof null // "object"
typeof undefined // "undefined"

//따라서, 조건문에서 사용할때는 

  if(typeof obj ==='boolean'){
    return `${obj}`;
  }
  if(typeof obj === 'string'){
    return `"${obj}"`
  }
  if(typeof obj ==='number'){
    return `${obj}`;
  }
  if(obj === null){
    return `${obj}`;
  }
//null은 값이므로, obj자체를 null과 비교해준다. 
profile
프론트엔드 개발자

0개의 댓글