Kutipan tunggal vs ganda ('vs ")

250

Saya selalu menggunakan tanda kutip tunggal saat menulis HTML dengan tangan. Saya bekerja dengan banyak HTML yang diberikan yang selalu menggunakan tanda kutip ganda. Ini memungkinkan saya untuk menentukan apakah HTML ditulis dengan tangan atau dibuat. Apakah ini ide yang bagus?

Apa perbedaan keduanya? Saya tahu keduanya bekerja dan didukung oleh semua browser modern tetapi apakah ada perbedaan nyata di mana satu sebenarnya lebih baik daripada yang lain dalam situasi yang berbeda?

ctrlShiftBryan
sumber
5
Untuk menjawab pertanyaan tentang apakah menggunakan tanda kutip tunggal vs ganda sebagai alat untuk menentukan HTML tulisan tangan vs yang dihasilkan, tidak, itu mungkin bukan ide yang baik. Walaupun kode yang tidak konsisten (menggunakan tunggal di beberapa tempat, ganda di tempat lain) mungkin ditulis tangan, saya yakin banyak orang (termasuk saya) menggunakan tanda kutip ganda di mana-mana, tetapi kode kami jelas bukan yang dihasilkan komputer; )
Doktor J
@ Jawaban Aito memang benar dan harus diterima ... Secara pribadi, saya menggunakan tanda kutip tunggal untuk atribut pendek seperti kata kunci tunggal / tag, URL dan referensi; segala sesuatu yang tidak dimaksudkan untuk dibaca oleh manusia, sebenarnya. Untuk teks yang lebih panjang, atau apa pun yang mungkin menyertakan spasi atau tanda kutip tunggal / tanda kutip - sebagai konten, saya menggunakan tanda kutip ganda. Itu hanya masalah gaya Anda (atau panduan gaya yang Anda gunakan)
cedbeu
1
checkout 10 situs web utama dan lihat apa yang mayoritas mereka gunakan, seperti stackoverflow, youtube / google, wikipedia. Sejauh ini saya kesulitan menemukan situs web utama yang menggunakan tanda kutip tunggal.
Timo Huovinen

Jawaban:

391

Org w3 berkata :

Secara default, SGML mengharuskan semua nilai atribut dibatasi menggunakan tanda kutip ganda (ASCII desimal 34) atau tanda kutip tunggal (ASCII desimal 39). Tanda kutip tunggal dapat dimasukkan dalam nilai atribut ketika nilainya dibatasi oleh tanda kutip ganda, dan sebaliknya. Penulis juga dapat menggunakan referensi karakter numerik untuk mewakili tanda kutip ganda ( ") dan tanda kutip tunggal ( '). Untuk kutipan ganda, penulis juga dapat menggunakan referensi entitas karakter ".

Jadi ... sepertinya tidak ada perbedaan. Hanya tergantung gaya Anda.

Aito
sumber
38
dan menjadi konsisten (baik dengan 'atau ") kemungkinan besar akan menghasilkan tingkat kompresi lebih tinggi jika Anda melayani halaman terkompresi (gzip, deflate)
cherouvim
2
@ Aito, itu untuk SGML. Untuk HTML, tidak semua nilai atribut harus dibatasi
Pacerier
4
Saya sarankan meskipun single over double - Mengapa menggunakan dua ketika seseorang dapat melakukan pekerjaan.
Ujjwal Singh
7
@ JohnHunt: Baru saja melakukan tes cepat pada file js 1823 bytes (Model Backbone acak dari aplikasi acak). Output gzip jika semua kutipan sama (salah satu 'atau ") adalah 809 byte. Mencampurnya mendorong output hingga 829 byte. Ini mungkin tidak relevan bagi Anda tetapi itu tidak berarti bahwa itu tidak relevan untuk semua orang.
cherouvim
3
Jika seseorang berkata, "Oh, itu potensi rendah, mungkin tidak relevan" untuk seratus hal "mungkin tidak relevan", kematian seribu jarum terjadi. Dengan upaya yang wajar, semua yang Anda dapat simpan layak untuk diselamatkan IMO.
KONTRAK MENGATAKAN AKU BENAR
67

Saya menggunakan "sebagai top-tier dan 'sebagai tier kedua, seperti yang saya bayangkan kebanyakan orang. Sebagai contoh

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

Dalam contoh itu, Anda harus menggunakan keduanya, itu tidak dapat dihindari.

NibblyPig
sumber
38
Saya melakukannya juga tetapi itu bisa dihindari jika Anda menghindari memasukkan javascript di dalam html.
cherouvim
4
Ada situasi javascript non-inline lainnya di mana tanda kutip tunggal mungkin diperlukan, seperti ketika menggunakan data-*atribut khusus . Bergantung pada aplikasi Anda dan bagaimana Anda menggunakan data-*atribut, Anda mungkin perlu menggunakan 'di dalamnya ". Terkadang kami menggunakannya untuk Pelacakan Peristiwa Google Analytics:<a href="..." data-track="Homepage Banner|Clicked|Dick's Sporting Goods">click me</a>
Jake Wilson
3
Pertimbangkanvar x = "<a href='" + url + "'>click me</a>";
NibblyPig
4
Dapat dengan mudah dihindari seperti ini: <a onclick="alert(\"Clicked!\")">. Namun, ini jauh lebih mudah dibaca.
fabspro
2
Saya tidak sepenuhnya yakin apakah itu secara resmi didukung oleh SGML dan HTML5.
fabspro
26

Mengutip Konvensi untuk Pengembang Web

Jawaban Singkat

Dalam HTML penggunaan tanda kutip tunggal (') dan tanda kutip ganda (") dapat dipertukarkan, tidak ada perbedaan.

Tetapi konsistensi direkomendasikan, oleh karena itu kita harus memilih konvensi sintaksis dan menggunakannya secara teratur.

Jawaban Panjang

Pengembangan Web sering terdiri dari banyak bahasa pemrograman. HTML, JS, CSS, PHP, ASP, RoR, Python, dll. Karena itu kami memiliki banyak konvensi sintaksis untuk berbagai bahasa pemrograman. Seringkali kebiasaan dari satu bahasa akan mengikuti kita ke bahasa lain, bahkan jika itu tidak dianggap "benar" yaitu konvensi komentar. Mengutip konvensi juga termasuk dalam kategori ini untuk saya.

Tapi saya cenderung menggunakan HTML dengan erat dalam hubungannya dengan PHP. Dan di PHP ada perbedaan besar antara tanda kutip tunggal dan tanda kutip ganda. Dalam PHP dengan tanda kutip ganda "Anda dapat menyisipkan variabel langsung ke dalam teks string". (scriptingok.com) Dan ketika menggunakan tanda kutip tunggal "teks muncul apa adanya". (scriptingok.com)

PHP membutuhkan waktu lebih lama untuk memproses string yang dikutip ganda . Karena parser PHP harus membaca seluruh string terlebih dahulu untuk mendeteksi variabel apa pun di dalamnya — dan menyatukannya — dibutuhkan proses yang lebih lama daripada satu string yang dikutip. (scriptingok.com)

 

Kutipan tunggal lebih mudah di server . Karena PHP tidak perlu membaca seluruh string terlebih dahulu, server dapat bekerja lebih cepat dan lebih bahagia. (scriptingok.com)

Hal-hal lain yang perlu dipertimbangkan

  1. Frekuensi tanda kutip ganda dalam string. Saya menemukan bahwa saya perlu menggunakan tanda kutip ganda (") dalam string saya lebih sering daripada saya perlu menggunakan tanda kutip tunggal (') dalam string. Untuk mengurangi jumlah karakter yang dibutuhkan, saya memilih pembatas kutip tunggal.
  2. Lebih mudah membuat satu kutipan. Ini cukup jelas tetapi untuk memperjelas, mengapa menekan tombol SHIFT lebih dari yang Anda harus lakukan.

Konvensi saya

Dengan pemahaman tentang PHP ini saya telah menetapkan konvensi (untuk saya dan perusahaan saya yang lain) bahwa string harus direpresentasikan sebagai tanda kutip tunggal secara default untuk optimasi server. Kutipan ganda digunakan dalam string jika tanda kutip diperlukan seperti JavaScript dalam atribut, misalnya:

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

Tentu saja jika kita menggunakan PHP dan ingin parser menangani variabel PHP dalam string, kita harus menggunakan tanda kutip ganda. $a='Awesome'; $b = "Not $a";

Sumber

Kutipan tunggal vs Kutipan ganda dalam PHP. (nd). Diperoleh 26 November 2014, dari http://www.scriptingok.com/tutorial/Single-quotes-vs-double-quotes-in-PHP

Dustin Poissant
sumber
3
Perbedaan kinerja penawaran harga vs penawaran ganda dalam PHP diketahui nol tahun sebelum Anda menjawab pertanyaan ini: nikic.github.io/2012/01/09/…
Conor Mancone
1
Anda menemukan lebih banyak tanda kutip ganda daripada tanda kutip tunggal dalam string Anda? Menarik. Saya tidak ingat kapan terakhir kali saya memiliki kutipan ganda di string saya.
Zonker.in.Geneva
Selalu. Dalam 10 tahun terakhir sebagai pengembang tumpukan penuh saya merasa perlu menggunakan tanda kutip ganda dalam string 10x lebih sering daripada tanda kutip tunggal. Contoh paling umum untuk JavaScript adalah pemilih atribut HANYA bekerja dengan tanda kutip ganda sehingga document.querySelector("[name^='myname']")tidak berfungsi sama sekali saat document.querySelector('[name^="myname"]')bekerja dengan sempurna.
Dustin Poissant
@DustinPoissant WHAAAT ?? Di browser mana ??
Tn. Lister
14

Jika semuanya sama, mungkin menggunakan tanda kutip tunggal lebih baik karena tidak perlu menahan tombol shift. Lebih sedikit penekanan tombol == lebih sedikit peluang RSI.

stko
sumber
2
baik, setidaknya pada tata letak umum Galactic. (hush-hush)
n611x007
1
Apa risiko RSI dan jumlah penekanan tombol terkait dengan standar pengkodean?
Dib
begitu banyak pendapat bahwa tidak ada perbedaan antara tanda kutip tunggal dan ganda, tetapi hanya satu yang menjelaskan bahwa jumlah penekanan tombol berbeda satu faktor dengan DUA. Dan kami membutuhkan banyak kutipan. Bolehkah saya menambahkan dengan saran bahwa mungkin akan membutuhkan lebih banyak neuron untuk menembak untuk pengenalan pola kutipan ganda di otak kita?
Roland
Itu tidak berlaku untuk keyboard Prancis.
Tokeeen.com
11

Dalam HTML saya tidak percaya itu penting apakah Anda menggunakan "atau ', tetapi harus digunakan secara konsisten di seluruh dokumen.

Penggunaan saya sendiri lebih suka menggunakan atribut / html ", sedangkan semua javascript digunakan '.

Ini membuat saya lebih mudah membaca dan memeriksa. Jika penggunaan Anda lebih masuk akal bagi Anda daripada saya, tidak perlu ada perubahan. Tetapi, bagi saya, kode Anda akan terasa berantakan. Itu pribadi semua.

David mengatakan mengembalikan Monica
sumber
Mengapa itu perlu digunakan secara konsisten? Hanya untuk keterbacaan?
timetofly
Karena itu lebih mudah untuk menghindari kesalahan seperti itu.
David mengatakan mengembalikan Monica
2
Saya sering memiliki atribut yang digunakan "juga, tetapi di lain waktu saya menulis kode dalam kode PHP di mana saya lebih suka echopenggunaannya "untuk memungkinkan penguraian. Atribut html apa pun dalam gema ini lebih mudah dibaca jika menggunakan '. Tentu itu tidak konsisten, tetapi jauh lebih mudah tanpa semua garis miring terbalik.
timetofly
3
Apa pun yang bekerja untuk Anda baik-baik saja; konsisten tidak berarti 'selalu melakukan X' itu hanya berarti 'dalam situasi X melakukannya dengan cara ini,' konsistensi dapat sadar konteks; dan paling baik digunakan.
David mengatakan mengembalikan Monica
9

Sebenarnya, cara terbaik adalah cara yang direkomendasikan Google. Kutipan ganda: https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Quotation_Marks#HTML_Quotation_Marks

Lihat https://google.github.io/styleguide/htmlcssguide.xml?showone=HTML_Validity#HTML_Validity Saran Dikutip dari Google: "Menggunakan HTML yang valid adalah atribut kualitas baseline yang dapat diukur yang berkontribusi untuk mempelajari tentang persyaratan teknis dan kendala, dan yang menjamin penggunaan HTML yang tepat. "

Stuart
sumber
Mayoritas situs web yang saya temui sejauh ini, termasuk stackoverflow, menggunakan tanda kutip ganda, saya pikir konsistensi di seluruh web adalah untuk yang lebih baik, jadi jawaban yang benar IMHO juga "tanda kutip ganda".
Timo Huovinen
2
Tapi kenapa!? Kenapa "berakhir '!?
San
2
@San Konsistensi, kebanyakan. Ini mengikuti standar Bahasa Inggris Amerika bahwa tanda kutip ganda adalah untuk tanda kutip dan tanda kutip tunggal untuk subquote.
Nielsvh
6

Saya tahu BANYAK orang tidak akan setuju, tetapi ini adalah apa yang saya lakukan dan saya benar-benar menikmati gaya pengkodean seperti itu: Saya sebenarnya tidak menggunakan kutipan dalam HTML kecuali benar-benar diperlukan.

Contoh:

<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>
...

Kutipan ganda hanya digunakan ketika ada spasi dalam nilai atribut atau apa pun:

<form class="val1 val2 val3" method=post action=#>
  ...
</form>
Randy Tang
sumber
1
Apakah ada alasan di baliknya? Atau Anda hanya "sangat menikmati gaya pengkodean seperti itu"?
Bugs Bunny
4
Tanpa tanda kutip, HTML terlihat jauh lebih bersih (dan ukuran file sedikit lebih kecil). Itulah satu-satunya alasan dan tidak ada yang lain. Terlebih lagi, saya benar-benar tidak dapat melihat titik untuk meminta setiap atribut memiliki tanda kutip. Mengapa tidak bisa dihilangkan untuk menyelamatkan masalah? Bahkan w3.org menerima nilai atribut yang tidak dikutip ( w3.org/TR/html-markup/syntax.html#syntax-attr-unquoted ). Sederhana lebih baik daripada kompleks. Apakah semacam agama memiliki kutipan?
Randy Tang
5
Tidak, tidak ada agama yang saya sadari. Saya telah berkeliling HTML untuk beberapa waktu dan tidak pernah melihat gaya Anda digunakan sebelumnya ... karena itu saya bertanya.
Bugs Bunny
1
Juga, minifiers HTML juga menghapus tanda kutip yang tidak perlu.
Nimrod
2
Masalah dengan meninggalkan tanda kutip di sekitar nilai atribut adalah bahwa standar yang berbeda memiliki daftar karakter yang berbeda yang perlu dikutip. Misalnya, HTML4 mengatakan hanya nilai yang terdiri dari huruf, angka, tanda hubung, dan titik yang tidak dapat dikutip, tetapi HTML5 mengatakan semuanya berjalan kecuali spasi dan "'` <=>, jadi Anda harus berhati-hati, terutama dengan browser lama!
Mr Lister
5

Menggunakan tanda kutip ganda untuk HTML

yaitu

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

Menggunakan tanda kutip tunggal untuk JavaScript

yaitu

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

Saya punya masalah menggunakan Bootstrap di mana menggunakan tanda kutip ganda memang penting vs menggunakan tanda kutip tunggal (yang tidak bekerja). class = 'row-fluid' memberi saya masalah yang menyebabkan rentang terakhir jatuh di bawah bentang lain daripada duduk dengan baik di sebelah kanan, sedangkan class = "row-fluid" bekerja.

MikeP
sumber
1

jika Anda menulis asp.net maka kadang-kadang Anda harus menggunakan tanda kutip ganda dalam pernyataan Eval dan tanda kutip tunggal untuk membatasi nilai - ini terutama agar kode C # inline tahu penggunaannya menggunakan string dalam wadah eval daripada karakter. Secara pribadi saya hanya menggunakan satu atau yang lain sebagai standar dan tidak mencampurkannya, itu terlihat berantakan semua.

Mauro
sumber
1

Menggunakan "bukannya 'saat:

<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

Menggunakan 'bukannya "saat:

<input value='"User"'/> //Need to use double quote
var html = "<input name='username'/>" //When assigning html content to a javascript variable
A1204773
sumber
3
Dalam kasus Anda "menetapkan konten html lakukan variabel js", saya biasanya lebih suka melakukan yang sebaliknya: var html = '<input name="username" />';dan tetap konsisten dengan sisa html lainnya :)
Erenor Paz
1

Tidak ada bedanya dengan html tetapi jika Anda menghasilkan html secara dinamis dengan bahasa pemrograman lain maka satu cara mungkin lebih mudah daripada yang lain.

Sebagai contoh di Jawa , kutipan ganda digunakan untuk menunjukkan awal dan akhir suatu String, jadi jika Anda ingin menyertakan doublequote dalam String, Anda harus menghindarinya dengan backslash.

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

Anda tidak memiliki masalah dengan kutipan tunggal, oleh karena itu penggunaan kutipan tunggal membuat kode lebih mudah dibaca di Jawa.

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

Terutama jika Anda harus menulis elemen html dengan banyak atribut. (Catatan Saya biasanya menggunakan perpustakaan seperti jhtml untuk menulis html di Jawa, tetapi tidak selalu praktis untuk melakukannya)

Paul Taylor
sumber
Apakah dua magang di servlets. Saya menganalisis kode saya dan baru sekarang saya mulai menyadari kenyataan pada tanda kutip ganda, tanda kutip tunggal dan rangkaian string. Situs web yang saya gunakan untuk belajar menggunakan tanda kutip ganda dalam html dan tanda kutip tunggal dalam java. Bahkan tidak sadar. Senang saya akhirnya mendapatkannya ...
Michael
0

Saya pemula di sini tetapi saya menggunakan tanda kutip tunggal hanya ketika saya menggunakan tanda kutip ganda di dalam yang pertama. Jika saya tidak jelas, saya menunjukkan kepada Anda contoh:

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

Saya harap saya membantu.

Marcin C
sumber
-5

Dalam PHP menggunakan tanda kutip ganda menyebabkan sedikit penurunan kinerja karena nama variabel dievaluasi, jadi dalam praktiknya, saya selalu menggunakan tanda kutip tunggal saat menulis kode:

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

Jadi Anda bisa menulis ini sebagai gantinya;

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

Saya percaya fungsi Javascript sama, jadi peningkatan kinerja yang sangat kecil, jika itu penting bagi Anda.


Selain itu, jika Anda melihat sepenuhnya ke HTML spec 2.0, semua tag tercantum di sini;

Referensi W3 HTML DTD

(Gunakan tanda kutip ganda.) Konsistensi adalah penting, apa pun yang cenderung Anda gunakan lebih sering.

Raiden
sumber
13
JavaScript tidak mengevaluasi nama variabel dalam string. Tidak ada perbedaan antara 'dan "dalam JavaScript.
John Mellor
-9

Kutipan ganda digunakan untuk string (yaitu, "ini adalah string") dan tanda kutip tunggal digunakan untuk karakter (yaitu, 'a', 'b' atau 'c'). Bergantung pada bahasa pemrograman dan konteksnya, Anda bisa menggunakan tanda kutip ganda untuk karakter tetapi bukan tanda kutip tunggal untuk string.

HTML tidak peduli yang mana yang Anda gunakan. Namun, jika Anda menulis HTML di dalam skrip PHP, Anda harus tetap menggunakan tanda kutip ganda karena Anda harus menghindarinya (yaitu, \ "apa pun \") untuk menghindari kebingungan Anda dan PHP.

CD Reimer
sumber
Saya tahu beberapa bahasa pemrograman, tetapi di mana ini benar.
mikl
1
@mikl praktik umum dalam C # dan Java adalah String dalam tanda kutip ganda dan karakter dalam tanda kutip tunggal. Tetapi itu tidak memberikan validasi untuk jawaban ini. Kecuali jika ini adalah jawaban untuk pertanyaan yang berbeda.
Evorlor