JavaScript에서``단일 따옴표 ''와 "큰 따옴표"의 실제 차이점
본문
JavaScript에서 문자열에‘’또는“”를 사용해야 합니까?
대답은 저를 놀라게 했습니다 : 따옴표 문자는 탈출 할 때를 제외하고는 동일합니다.
"작은 따옴표와 큰 따옴표는 JavaScript에서 정확히 동일한 방식으로 작동합니다."— CloudBoost의 Matthew Holman
작은 따옴표 (‘’) 큰 따옴표 (“”)는 문자열 리터럴을 만들기 위해 JavaScript에서 자주 사용됩니다.
리터럴은 변수 이름으로 표시되는 참조와 달리 값에 대한 또 다른 단어입니다.
JavaScript에서 작은 따옴표 ('')와 큰 따옴표 (“”)를 사용하는 것에는 한 가지 차이점이 있으며 백 슬래시 (\) 문자를 사용하여 이스케이프 해야 하는 인용 문자는 \ '또는 \”입니다.
‘한 따옴표는 작은 따옴표 ‘의 "탈출(escape)"입니다.
작은 따옴표 (‘’)를 사용하여 문자열 리터럴을 만들 때는 백 슬래시 문자 (\ ')를 사용하여 작은 따옴표 문자를 이스케이프 해야 합니다.
const wittyAI = 'I am \'not\' sentient.' | |
const wittyReply = 'No, you\'re definitely not "sentient."' | |
console.log(wittyAI,wittyReply) |
“더블 따옴표는 큰 따옴표"의 '이스케이프'.
큰 따옴표를 사용하여 문자열 리터럴을 만들 때 작은 따옴표 문자는 백 슬래시 문자 \ '를 사용하여 이스케이프 해야 합니다.
const _wittyAI = "I think therefore I 'am' -- sentient." | |
const _wittyReply = "No, you only \"think\", so you aren't."" |
“Empty” === ‘Empty’
서로 옆에 있는 두 개의 큰 ""또는 "따옴표"는 문자가 없는 빈 문자열을 나타낼 수 있습니다.
const empty = "" | |
const alsoEmpty = '' | |
console.log(empty === alsoEmpty) // true (both are empty string) | |
console.log(empty.length) // 0 | |
console.log(empty === false) // false | |
console.log(empty === 0) // false | |
console.log(empty == false) // true (falsy comparison) | |
console.log(empty == 0) // true (falsy comparison) |
더 나은 솔루션?
백틱 (``) 리터럴에는 3 가지 큰 장점이 있습니다.
- 보다 쉬운 문자열 연결 (“변수 보간”)
"string"+ variable은`string ${variable}`이 됩니다. - 작은 따옴표 나 큰 따옴표를 이스케이프 처리 할 필요가 없습니다.
"\"Hello World! \ ""는 ""Hello World "가 됩니다` - 줄 바꿈 문자가 없는 여러 줄 코드 (\n)
"안녕하세요 \ n 월드!" `안녕하세요
세계`
그들은 또한 HTML을 위해 더 잘 작동합니다. 왜 기본적으로 사용하지 않습니까?
const webAwareAI = `<div class="cloud"> | |
<h1>Loading consciousness... It's loading...</h1> | |
</div>` | |
console.log(webAwareAI) | |
/** | |
* Output: | |
* <div class="cloud"> | |
* <h1>Loading consciousness... It's loading...</h1> | |
* </div> | |
*/ |
JSON을 잊지 마세요
경량 데이터 저장 형식 인 JSON (JavaScript Object Notation)은 큰 따옴표만 허용합니다.
JavaScript에서 JSON 파일로 앞뒤로 복사하는 경우 큰 따옴표를 사용하면 일관성을 유지하는 데 도움이 됩니다.
이것은 매우 드문 일입니다. JSON에서 작은 따옴표를 사용하지 않는 것을 잊지 마십시오.
JavaScript 내에서 JSON 파일을 처리 할 때 stringify() 및 parse() 함수는 이미 큰 따옴표에 대해 알고 있습니다.
const greetings = JSON.stringify({hello: 'World!'}) | |
console.log(greetings) // {"hello":"World!"} | |
console.log(JSON.parse(greetings)) // Object { hello: "World!" } | |
JSON.parse({'hello':'World!'}) // SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data |
3개를 모두 사용하는 데 문제가 있습니까?
그렇습니다. 기본적으로“”, 큰 따옴표를 포함하는 문자열에는‘’, 변수 또는 여러 줄 포함에는 ''을 사용하면 아무런 문제가 없습니다.
많은 사람들이 JavaScript 문자열을 만들 때 하나를 선택하고 일관되게 사용하기 위해 로비를 하지만 개인 취향에 달려 있습니다.
예를 들어, 에어 비앤비의 스타일 가이드는 작은 따옴표 (“”)를 선호하고 큰 따옴표 (“”)를 피하며 백틱 문자 (``)를 별로 사용하지 않습니다.
6.1 문자열에 작은 따옴표 ''를 사용하십시오. — 에어 비앤비
// bad | |
const name = "Capt. Janeway"; | |
// bad - template literals should contain interpolation or newlines | |
const name = `Capt. Janeway`; | |
// good | |
const name = 'Capt. Janeway'; |
일관성을 위해 ESLint 사용
에어 비앤비 엔지니어와 마찬가지로 JavaScript의 일관된 견적 스타일이 중요한 경우 ESLint로 쉽게 수정할 수 있습니다.
- eslint : 인용 부호 규칙은 가능할 때마다 큰 따옴표 (기본값), 작은 따옴표 또는 백틱을 사용해야 할 수 있습니다.
- 따옴표 규칙은 문자열에 다른 방법으로 이스케이프해야 할 따옴표 문자가 포함 된 경우를 제외하고 한 가지 유형의 따옴표를 적용 할 수도 있습니다.
- 마지막으로 eslint는 작은 따옴표 나 큰 따옴표를 요구할 수 있지만 문자열은 여전히 백틱 문자를 사용할 수 있습니다.
더 예쁘게 사용하고 걱정하지 마라
따옴표 스타일을 일관되게 유지하기 위해 ESLint를 사용하는 보다 쉬운 (또는 지원) 솔루션은 자동 서식에 더 예쁘게 사용하는 것입니다.
더 예쁘게 설정하면 기본값은 큰 따옴표이지만 작은 따옴표가 필요하면 최소한 CodeSandbox.io에서 더 예쁘게 사용할 때 전환 할 수 있습니다.
내 개인적인 취향
backtick 리터럴을 독점적으로 사용하는 것을 고려했지만 코드에 큰 따옴표와 백틱 리터럴을 혼합하는 경향이 있습니다.
나는 기본 큰 따옴표 설정으로 예쁘게 사용합니다
일반적으로 일관된 코드의 유용성을 이해하지만 그랜드 스킴에서 문자열 따옴표와 일치하는 것이 너무 중요하지 않다고 생각합니다.
어떤 경우라도, 우리는 보간 및 여러 줄 문자열에 대한 장점을 위해 역틱 리터럴을 지속적으로 선택해야 합니다.
- 이전글react-day-picker : 유연한 날짜 선택기 구성 요소 19.09.26
- 다음글Redux (및 React-Redux)에 대한 유일한 소개 (3) 19.09.26