싱글 쿼테이션(''), 더블 쿼테이션(""), 백틱(``) 중 어떤걸 사용하면 좋을까?
ECMA-262 표준문서에서는 예제코드 및 프로토타입 함수를 정의할 때 더블 쿼테이션을 사용하고 있다.
하지만 구글의 사내 코드 컨벤션은 싱글 쿼테이션이라고 한다.
그만큼 선호도의 차이일 뿐 무엇을 사용하던지 큰 문제는 없다고 하는데, 그렇다면 JSON 을 자주 사용하는 자바스크립트에서는 더블 쿼테이션을 사용하는 게 유리하지 않을까?
네 가지 이유로 더블 쿼테이션을 사용하는 게 바람직하다고 주장한다.
1. 영어에서의 더블 쿼테이션은 인용된 텍스트의 구절을 식별하기 위해 사용하고, 싱글 쿼테이션은 구어적 의미를 나타낸다. 기존 언어와 일관성을 유지하는 것이 합리적이다.
2. 더블 쿼테이션 사용시 I'm Kim 과 같은 문자열에서 apostrophes 를 escape 처리하지 않아도 된다.
3. 더블 쿼테이션은 다른 많은 언어들에서 문자열을 의미하는 것이 일반적이다. JAVA나 C와 같은 언어들에서는 문자열이 더블 쿼테이션을 의미하고, 싱글 쿼테이션은 다른 기능을 가지는 경우가 있다.
4. JSON 의 표기법은 더블 쿼테이션이다.
이러한 이유로 더블 쿼테이션이 유리하다고 말한다.
무엇을 쓰던 상관은 없다고 하지만, 찾아본 내용을 종합했을 때 사내 혹은 프로젝트 컨벤션이 싱글 쿼테이션을 지향하는 것이 아니라면 굳이 사용할 필요가 있을까 생각이 든다. 물론 shift + ' 를 누르기가 귀찮긴 하지만..
JSON(Javascript Object Notation) 은 key/value 객체 형태의 경량 데이터 교환 형식이다. JS 를 포함한 여러 언어에서 범용적으로 사용한다.
JSON.stringify : 객체를 JSON 으로 변환(직렬화)
JSON.parse : JSON 을 객체로 변환(역직렬화)
** 직렬화 : 외부의 시스템에서 사용할 수 있도록 바이트 형태로 데이터를 변환하는 기술. 코드 내의 객체나, 해시테이블, 딕셔너리 등을 JSON으로 변환하는 것을 의미한다.
** 역직렬화 : 외부 시스템의 바이트 형태의 데이터를 객체나 해시테이블, 딕셔너리 등으로 변환하는 것을 의미한다.
JS 객체
1. 키에 따옴표 없어도 가능 -> {key:"value"}
2. 문자열 값에 작은 따옴표 사용 가능 -> {"key":'value'}
3. 키-값 사이에 공백 사용 가능 -> {"key" : "value"}
4. 키-값 쌍 사이에 공백 사용 가능 -> {"key":"value", a=1}
JSON 객체
1. 키,값에 무조건 더블 쿼테이션 -> {"key":"value"}
2. 키-값 사이에 공백 사용 불가능 -> {"key":"value"}
3. 키-값 쌍 사이에 공백 사용 불가능 -> {"key":"value",a=1}
참고
https://stackoverflow.com/questions/242813/are-double-and-single-quotes-interchangeable-in-javascript
https://www.json.org/json-en.html