작은 따옴표와 큰 따옴표 ( 'vs ")


250

HTML을 직접 작성할 때는 항상 작은 따옴표를 사용했습니다. 나는 항상 큰 따옴표를 사용하는 많은 렌더링 된 HTML로 작업합니다. 이를 통해 HTML을 직접 작성했는지 또는 생성했는지 확인할 수 있습니다. 이것이 좋은 생각입니까?

이 둘의 차이점은 무엇입니까? 둘 다 작동하고 모든 최신 브라우저에서 지원되지만 다른 상황에서 다른 브라우저보다 실제로 더 나은 실제 차이점이 있습니까?



5
손으로 쓴 HTML과 생성 된 HTML을 결정하는 수단으로 작은 따옴표와 큰 따옴표를 사용하는지에 대한 질문에 대답하는 것은 좋은 생각이 아닙니다. 일치하지 않는 코드 (일부 장소에서는 단일, 다른 곳에서는 이중으로 사용)가 손으로 작성되었지만, 많은 사람 (자신 포함)이 어디서나 큰 따옴표를 사용한다고 확신하지만 코드는 컴퓨터로 생성되지 않습니다. )
Doktor J

@Aito의 대답은 실제로 정확하고 받아 들여야합니다 ... 개인적으로, 나는 단일 키워드 / 태그, URL 및 참조와 같은 짧은 속성에 작은 따옴표를 사용합니다. 실제로 사람이 읽을 수없는 것. 더 긴 텍스트 또는 공백이나 작은 따옴표 / 아포스트로피를 포함 할 수있는 모든 내용의 경우 큰 따옴표를 사용합니다. 그것은 단지 당신의 스타일 (또는 사용하는 스타일 가이드)의 문제입니다
cedbeu

1
10 개의 주요 웹 사이트를 체크 아웃하고 stackoverflow, youtube / google, wikipedia와 같이 대부분의 웹 사이트가 무엇을 사용하는지 확인하십시오. 지금까지 작은 따옴표를 사용하는 주요 웹 사이트를 찾는 데 어려움이 있습니다.
Timo Huovinen

답변:


391

W3 조직 은 말했다 :

기본적으로 SGML에서는 모든 속성 값을 큰 따옴표 (ASCII 10 진수 34) 또는 작은 따옴표 (ASCII 10 진수 39)를 사용하여 구분해야합니다. 값이 큰 따옴표로 구분되고 그 반대의 경우에는 작은 따옴표가 속성 값에 포함될 수 있습니다. 저자는 숫자 참조를 사용하여 큰 따옴표 ( ")와 작은 따옴표 ( ') 를 나타낼 수도 있습니다 . 큰 따옴표의 경우 작성자는 문자 엔터티 참조를 사용할 수도 있습니다 ".

그래서 ... 차이가없는 것 같습니다. 당신의 스타일에만 의존합니다.


38
대부분의 아마 경우에 더 높은 압축률가 발생합니다 (하나와 '또는 ") 일관되고 당신은 압축으로 게재 (gzip을, 폐의) 페이지
cherouvim

2
@Aito, SGML을위한 것입니다. HTML의 경우 모든 속성 값을 구분할 필요는 없습니다
Pacerier

4
나는 single over double을 제안하지만-일을 할 수있을 때 왜 2를 사용 하는가?
Ujjwal Singh

7
@ JohnHunt : 1823 바이트 js 파일 (임의의 응용 프로그램에서 임의의 백본 모델)에 대해 빠른 테스트를 수행했습니다. 모든 따옴표가 같 '거나 ( 또는 ") 809 바이트 인 경우 gzip 출력 입니다. 그것들을 혼합하면 출력이 829 바이트까지 증가했습니다. 이것은 당신과 관련이 없을 수 있지만 그것이 모든 사람과 관련이 없다는 것을 의미하지는 않습니다.
cherouvim

3
"아마 그것은 아마도"아마도 관련이없는 "100 가지에 대한"낮은 가능성, 아마도 관련이 없다 "고 말하면 천 개의 바늘이 죽게됩니다. 합리적인 노력으로 절약 할 수있는 모든 것이 IMO를 절약 할 가치가 있습니다.
계약의 말이 맞다

67

나는 대부분의 사람들이 생각하는 것처럼 "최상위 계층과 '두 번째 계층으로 사용합니다. 예를 들어

<a href="#" onclick="alert('Clicked!');">Click Me!</a>

이 예에서는 두 가지를 모두 사용해야하며 불가피합니다.


38
나도 그렇게하지만 HTML 내부에서 자바 스크립트를 인라인하지 않으면 피할 수 있습니다.
cherouvim

4
사용자 정의 data-*속성을 사용할 때와 같이 작은 따옴표가 필요한 다른 비 인라인 JavaScript 상황이 있습니다 . 응용 프로그램에 따라하고 사용하는 방법 data-*속성을 사용해야하는 것은 ''내이야 "의'. 때로는 Google 웹 로그 분석 이벤트 추적에 사용하기도합니다.<a href="..." data-track="Homepage Banner|Clicked|Dick's Sporting Goods">click me</a>
Jake Wilson

3
고려var x = "<a href='" + url + "'>click me</a>";
NibblyPig

4
<a onclick="alert(\"Clicked!\")">와 같이 쉽게 피할 수 있습니다. 그러나 이것은 훨씬 덜 읽기 쉽습니다.
fabspro

2
그러나 그것이 SGML과 HTML5에서 공식적으로 지원되는지는 확실하지 않습니다.
fabspro

26

웹 개발자를위한 인용 규칙

짧은 대답

HTML에서 작은 따옴표 ( ')와 큰 따옴표 ( ")는 서로 바꿔 사용할 수 있으며 차이가 없습니다.

그러나 일관성이 권장되므로 구문 규칙을 선택하고 정기적으로 사용해야합니다.

긴 대답

웹 개발은 종종 많은 프로그래밍 언어로 구성됩니다. HTML, JS, CSS, PHP, ASP, RoR, Python 등. 이 때문에 다양한 프로그래밍 언어에 대한 많은 구문 규칙이 있습니다. 한 언어로 된 습관은 다른 언어로 우리를 따라가는 경우가 있습니다. 예를 들어 "적절한"것으로 간주되지 않는 경우도 있습니다. 인용 규칙도이 범주에 속합니다.

그러나 PHP와 함께 HTML을 단단히 사용하는 경향이 있습니다. 그리고 PHP에서는 작은 따옴표와 큰 따옴표 사이에 차이가 있습니다. 큰 따옴표가있는 PHP에서 "문자열의 텍스트 내에 변수를 직접 삽입 할 수 있습니다". (scriptingok.com) 작은 따옴표를 사용하면 "텍스트가 그대로 나타납니다". (scriptingok.com)

큰 따옴표로 묶인 문자열을 처리하는 데 시간이 오래 걸립니다 . PHP 파서는 전체 문자열을 미리 읽어서 내부의 모든 변수를 감지하고 연결하여 작은 따옴표로 묶은 문자열보다 처리하는 데 시간이 오래 걸립니다. (scriptingok.com)

 

작은 따옴표는 서버에서 더 쉽습니다 . PHP는 전체 문자열을 미리 읽을 필요가 없으므로 서버가 더 빠르고 행복하게 작동 할 수 있습니다. (scriptingok.com)

고려해야 할 다른 것들

  1. 문자열 내에서 큰 따옴표의 빈도. 문자열 내에서 작은 따옴표 ( ')를 사용하는 것보다 문자열 내에서 큰 따옴표 ( ")를 더 자주 사용해야한다는 것을 알았습니다. 필요한 문자 이스케이프 수를 줄이려면 작은 따옴표 구분 기호를 사용하십시오.
  2. 작은 따옴표를 만드는 것이 더 쉽습니다. 이것은 상당히 자명하지만 명확하게하기 위해 왜 Shift 키를 더 많은 시간을 누르십시오.

나의 컨벤션

PHP에 대한 이러한 이해를 통해 서버 최적화를 위해 기본적으로 문자열을 작은 따옴표로 표시해야한다는 규칙을 (나 자신과 회사의 나머지 부분을 위해) 설정했습니다. 속성 내에 JavaScript와 같이 따옴표가 필요한 경우 문자열 내에 큰 따옴표가 사용됩니다 (예 :

<button onClick='func("param");'>Press Me</button>

물론 우리가 PHP에 있고 파서가 문자열 내에서 PHP 변수를 처리하도록하려면 의도적으로 큰 따옴표를 사용해야합니다. $a='Awesome'; $b = "Not $a";

출처

PHP에서 작은 따옴표와 큰 따옴표. (nd). http://www.scriptingok.com/tutorial/Single-quotes-vs-double-quotes-in-PHP 에서 2014 년 11 월 26 일에 확인 함


3
PHP의 작은 따옴표와 큰 따옴표 성능 차이는이 질문에 답하기 전에 0 년으로 알려져 있습니다 : nikic.github.io/2012/01/09/…
Conor Mancone

1
문자열 내에서 작은 따옴표보다 큰 따옴표를 더 많이 찾으십니까? 흥미 롭군 문자열에 큰 따옴표가 마지막으로 있었던 시간을 기억할 수 없습니다.
Zonker.in. 제네바

지속적으로. 풀 스택 개발자로서 지난 10 년 동안 작은 따옴표보다 10 배 더 자주 문자열 내에서 큰 따옴표를 사용해야하는 것으로 나타났습니다. JavaScript의 가장 일반적인 예는 속성 선택기입니다. 큰 따옴표로만 작동하므로 document.querySelector("[name^='myname']")전혀 작동하지 않지만 document.querySelector('[name^="myname"]')완벽하게 작동합니다.
Dustin Poissant

트윗 담아 가기 어떤 브라우저에서?
Mr Lister

14

모두 같으면 작은 따옴표를 사용하는 것이 좋습니다. Shift 키를 누를 필요가 없기 때문입니다. 키 입력 횟수가 적을수록 RSI 확률이 줄어 듭니다.


2
글쎄, 적어도 은하계 공통 레이아웃에서. (hush-hush)
n611x007 14

1
RSI의 위험과 키 입력 횟수는 코딩 표준과 어떤 관련이 있습니까?
Dib

작은 따옴표와 큰 따옴표 사이에는 차이가 없다고 생각하는 많은 의견이 있지만, 키 입력의 수가 두 가지 요소가 다르다는 것을 분명히하는 의견 만 있습니다. 그리고 우리는 많은 인용문이 필요합니다. 뇌에서 큰 따옴표의 패턴 인식을 위해 더 많은 뉴런이 필요하다는 제안을 덧붙일 수 있습니까?
Roland

프랑스어 키보드에는 해당되지 않습니다.
Tokeeen.com

11

HTML에서 나는 사용 여부가 중요한 믿지 않는 "',하지만 문서 전체에서 일관되게 사용되어야한다.

내 사용법은 attributes / html use을 선호 "하지만 모든 javascript는 '대신 사용 합니다.

이것은 내가 읽고 확인하기가 조금 더 쉬워집니다. 당신의 사용이 나의 것보다 당신에게 더 의미가 있다면, 변경할 필요가 없습니다. 그러나 나에게 당신의 코드는 지저분 해질 입니다. 개인적입니다.


왜 일관성있게 사용해야합니까? 가독성을 위해서만?
timetofly

그런 식으로 실수를 피하는 것이 더 쉽기 때문입니다.
데이비드는 모니카

2
나는 종종 속성도 사용 "하지만 다른 경우에는 파싱을 허용하기 위해 echo사용을 선호하는 PHP 코드로 코드를 작성하고 있습니다 ". 를 사용하는 경우이 에코 내의 모든 HTML 속성을보다 쉽게 ​​읽을 수 '있습니다. 물론 일관성이 없지만 모든 백 슬래시가 없으면 훨씬 쉽습니다.
timetofly

3
당신을 위해 일하는 것은 괜찮습니다. 일관성은 '항상 X를한다'는 의미가 아니라 '상황 X가 이렇게하는 것'을 의미한다는 것입니다. 일관성은 상황을 인식 할 수 있습니다. 가장 잘 사용됩니다.
데이비드는 모니카

9

실제로 가장 좋은 방법은 Google이 권장하는 방법입니다. 큰 따옴표 : https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Quotation_Marks#HTML_Quotation_Marks

참조 https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Validity#HTML_Validity 구글에서 인용 조언 : "유효한 HTML을 사용하면 측정 기준 품질 속성입니다 기술적 요구 사항과 제약 조건 및 보장에 대한 학습에 기여 적절한 HTML 사용법. "


스택 오버 플로우를 포함하여 지금까지 만난 웹 사이트의 대부분은 큰 따옴표를 사용합니다. 웹 전체의 일관성이 더 좋다고 생각합니다. 따라서 정답은 "큰 따옴표"입니다.
Timo Huovinen의

2
그런데 왜!? 왜 "끝났어 '???
San

2
@San 일관성. 큰 따옴표는 인용 부호이고 작은 따옴표는 소 인용 부호라는 미국 영어 표준을 따릅니다.
Nielsvh

6

나는 많은 사람들이 동의하지 않을 것이라는 것을 알고 있지만 이것이 내가하는 일이며 실제로 그러한 코딩 스타일을 좋아합니다. 절대적으로 필요한 경우가 아니라면 실제로 HTML에서는 인용 부호를 사용하지 않습니다.

예:

<form method=post action=#>
<fieldset>
<legend>Register here: </legend>
  <label for=account>Account: </label>
  <input id=account type=text name=account required><br>
  <label for=password>Password: </label>
  <input id=password type=password name=password required><br>
...

큰 따옴표는 속성 값에 공백이 있거나 다음과 같은 경우에만 사용됩니다.

<form class="val1 val2 val3" method=post action=#>
  ...
</form>

1
뒤에 이유가 있습니까? 아니면 그냥 "정말 그런 코딩 스타일을 즐기세요"?
Bugs Bunny

4
따옴표가 없으면 HTML이 훨씬 깔끔해 보입니다 (파일 크기가 조금 더 작습니다). 그것이 유일한 이유이며 다른 것은 없습니다. 또한 모든 속성에 따옴표 가 필요하다는 점을 실제로 알 수 없습니다 . 왜 문제를 해결하기 위해 생략 할 수 없습니까? w3.org조차도 인용되지 않은 속성 값 ( w3.org/TR/html-markup/syntax.html#syntax-attr-unquoted )을 허용합니다 . 단순보다 복잡합니다. 인용하는 것은 일종의 종교입니까?
랜디 탕

5
아니, 내가 아는 종교는 없어 나는 HTML을 꽤 오랫동안 사용해 왔으며 이전에 스타일이 사용되는 것을 보지 못했습니다 ... 따라서 물었습니다.
Bugs Bunny

1
또한 HTML 축소 기는 불필요한 따옴표도 제거합니다.
님로드

2
속성 값을 따옴표로 묶는 문제는 다른 표준에 인용해야하는 문자 목록이 서로 다르다는 것입니다. 예를 들어, HTML4는 문자, 숫자, 대시 및 점으로 구성된 값만 인용 부호가 없을 수 있지만 HTML5는 공백과 " '`<=>를 제외한 모든 항목은 간다"고 말하며 특히 오래된 브라우저에서는주의해야합니다!
Mr Lister

5

HTML에 큰 따옴표 사용

<div class="colorFont"></div>

JavaScript에 작은 따옴표 사용

$('#container').addClass('colorFont');
$('<div class="colorFont2></div>');

2

큰 따옴표를 사용하는 것과 작은 따옴표를 사용하는 것 (작동하지 않는)이 Bootstrap을 사용하는 데 문제가있었습니다. class = 'row-fluid'는 마지막 스팬이 맨 오른쪽 옆에 멋지게 앉아있는 것이 아니라 다른 스팬 아래로 떨어지는 문제를 주었지만 class = "row-fluid"는 효과가있었습니다.


1

asp.net을 작성하는 경우 때때로 Eval 문에 큰 따옴표를 사용하고 값을 구분하기 위해 작은 따옴표를 사용해야합니다. 이는 주로 C # 인라인 코드가 문자가 아닌 eval 컨테이너의 문자열을 사용하도록 알립니다. 개인적으로 하나 또는 다른 것을 표준으로 사용하고 혼합하지는 않을 것입니다.


1

다음과 같은 경우 '대신'를 사용하십시오.

<input value="user"/> //Standard html
<input value="user's choice"/> //Need to use single quote
<input onclick="alert('hi')"/> //When giving string as parameter for javascript function

다음과 같은 경우에 "대신"을 사용하십시오.

<input value='"User"'/> //Need to use double quote
var html = "<input name='username'/>" //When assigning html content to a javascript variable

3
"html 컨텐츠를 지정하면 js 변수를 지정"하는 경우, 나는 일반적으로 반대를 선호하고 var html = '<input name="username" />';나머지 HTML과 일관성을 유지합니다 . :)
Erenor Paz

1

HTML과 아무런 차이가 없지만 다른 프로그래밍 언어로 HTML을 동적으로 생성하는 경우 한 가지 방법이 다른 방법보다 쉬울 수 있습니다.

예를 들어 Java 에서 큰 따옴표는 문자열의 시작과 끝을 나타내는 데 사용되므로 문자열에 큰 따옴표를 포함하려면 백 슬래시로 이스케이프해야합니다.

String s = "<a href=\"link\">a Link</a>"

작은 따옴표에는 그런 문제가 없으므로 작은 따옴표를 사용하면 Java에서 더 읽기 쉬운 코드가 만들어집니다.

String s = "<a href='link'>a Link</a>"

특히 많은 속성을 가진 html 요소를 작성 해야하는 경우 (주로 jhtml과 같은 라이브러리를 사용하여 Java로 HTML을 작성하지만 항상 실용적인 것은 아닙니다)


서블릿에서 두 개의 인턴쉽을했습니다. 나는 내 코드를 분석하고 있었고 지금은 큰 따옴표, 작은 따옴표 및 문자열 연결에서 현실을 실현하기 시작했습니다. 내가 공부했던 웹 사이트는 HTML에서 큰 따옴표를 사용하고 Java에서 작은 따옴표를 사용했습니다. 깨닫지 못했습니다. 다행
Michael

0

나는 여기 초보자이지만 첫 번째 안에 큰 따옴표를 사용할 때만 작은 따옴표를 사용합니다. 확실하지 않으면 예를 보여줍니다.

<p align="center" title='One quote mark at the beginning so now I can
"cite".'> ... </p>

도움이 되었기를 바랍니다.


-5

PHP에서 큰 따옴표를 사용하면 변수 이름이 평가되므로 성능이 약간 저하되므로 실제로 코드를 작성할 때 항상 작은 따옴표를 사용합니다.

echo "This will print you the value of $this_variable!";
echo 'This will literally say $this_variable with no evaluation.';

따라서 대신 쓸 수 있습니다.

echo 'This will show ' . $this_variable . '!';

나는 자바 스크립트가 비슷하게 작동한다고 생각하므로 성능이 매우 약간 향상됩니다.


또한 HTML spec 2.0까지 살펴보면 여기에 나열된 모든 태그가 있습니다.

W3 HTML DTD 참조

(큰 따옴표를 사용하십시오.) 더 자주 사용하는 경향이 있더라도 일관성이 중요합니다.


13
JavaScript는 문자열에서 변수 이름을 평가하지 않습니다. JavaScript에서 '와'의 차이는 없습니다.
John Mellor

-9

큰 따옴표는 문자열 (예 : "this is a string")에 사용되고 작은 따옴표는 문자 (예 : 'a', 'b'또는 'c')에 사용됩니다. 프로그래밍 언어 및 컨텍스트에 따라 문자에 큰 따옴표를 사용하지만 문자열에 작은 따옴표는 사용하지 않아도됩니다.

HTML은 어떤 것을 사용하든 상관 없습니다. 그러나 PHP 스크립트 내에서 HTML을 작성하는 경우, 자신과 PHP를 혼동하지 않으려면 큰 따옴표를 붙여야합니다 (예 : \ "whatever \").


나는 꽤 많은 프로그래밍 언어를 알고 있지만 이것이 사실입니다.
mikl

1
C # 및 Java의 @mikl 일반 관행은 큰 따옴표로 묶은 문자열이고 작은 따옴표로 묶은 문자입니다. 그러나 이것은이 답변에 대한 검증을 제공하지 않습니다. 이것이 다른 질문에 대한 답이 아닌 한.
Evorlor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.