camelCase vs snake_case vs kebab-case: Yang mana ke gunakan
camelCase untuk JavaScript, snake_case untuk Python dan databases, kebab-case untuk CSS dan URLs. Di mana setiap naming convention belongs dan bagaimana ke conv
Diterbitkan · 5 menit baca
camelCase vs snake_case vs kebab-case adalah mostly a question tentang di mana the name lives. JavaScript dan Java gunakan camelCase (firstName), Python, Ruby dan SQL gunakan snake_case (first_name), dan CSS, HTML attributes dan URLs gunakan kebab-case (first-name). Follow the bahasa's convention dan Anda team's style panduan. untuk switch teks antara cases, the gratis case konverter dan the gratis URL slug generator cdi atas most tentang the kerja di Anda peramban.
camelCase vs snake_case vs kebab-case di a glance
| Style | Contoh | Di mana Anda'll see it |
|---|---|---|
| camelCase | userFirstName |
JavaScript dan TypeScript variables dan functions, Java methods, JSON dari many web APApakah |
| PascalCase | UserFirstName |
Class names di most languages, React components, C# methods |
| snake_case | user_first_name |
Python variables dan functions, Ruby, SQL column names, many JSON APApakah |
| SCREAMING_SNAKE_CASE | USER_FIRST_NAME |
Constants di many languages, environment variables |
| kebab-case | user-first-name |
CSS properties dan class names, HTML attributes, URLs, berkas names, CLI tanda |
The names come dari the shapes: camelCase memiliki humps tentang capital letters, snake_case lies flat pada di bawahscores, dan kebab-case kata adalah skewered pada hyphens.

bahasa by bahasa
JavaScript dan TypeScript. Variables dan functions adalah camelCase (getUserName), classes dan React components adalah PascalCase (UserCard), dan constants adalah sering SCREAMING_SNAKE_CASE (MAX_RETRIES). The bahasa's own built-ins follow ini, like getElementById dan toLowerCase.
Python. PEP 8, Python's style panduan, uses snake_case untuk functions, variables dan module names, CapWords (PascalCase) untuk classes, dan upper case dengan di bawahscores untuk constants. Writing getUserName di Python works, tetapi it akan look out tentang place ke every Python developer who reads it.
CSS dan HTML. CSS properties adalah kebab-case (background-color, font-size), dan most class-naming systems follow suit (.nav-item, .card-title). HTML data- attributes adalah kebab-case too, dan perambans konversi them untuk JavaScript: data-user-id becomes element.dataset.userId. itu satu line adalah a neat summary tentang mengapa both conventions exist.
SQL dan databases. Column dan table names adalah biasanya snake_case (created_at, order_items). Many databases fold unquoted names ke satu case, jadi createdAt dapat quietly become createdat unlebih sedikit Anda quote it every waktu. snake_case avoids itu.
URLs dan berkas names. Gunakan kebab-case. Google's URL structure guidance recommends hyphens rather than di bawahscores ke separate kata, karena hyphens clearly mark kata boundaries. Lowercase juga avoids broken links pada servers itu treat About.html dan about.html as berbeda berkas. Lihat apa a URL slug adalah dan our URL slug best practices.
JSON dan APIs. There's no single rule. Many JavaScript-centred APApakah gunakan camelCase dan many Python atau Ruby kembali ends return snake_case. Pick satu per API dan tidak pernah mix them di the sama response.
Yang mana adalah easiest ke baca?
semua tiga adalah readable once Anda're used ke them. A few practical djikaferences:
- snake_case dan kebab-case pertahankan a clear gap antara kata, which helps dengan long names dan acronyms (
html_parservshtmlParservsHTMLParser). - camelCase adalah shorter dan kebutuhan no extra characters.
- kebab-case dapat't menjadi used untuk variable names di most languages, karena
user-namereads asuser minus name. - Double-clicking selects a whole snake_case atau camelCase name di most editors, tetapi biasanya stops di hyphens di kebab-case.
The nyata rule adalah consistency. A berkas itu mixes userName, user_name dan UserName adalah harder ke baca than apa pun satu style used everydi mana.
Converting antara cases
Anda'll need ke konversi ketika moving data antara layers: a Python API's created_at becoming a JavaScript createdAt, a halaman title becoming a URL, atau a setting name becoming an environment variable.
untuk kebab-case atau snake_case: gunakan the slug generator. tempel the kata, satu name per line, dan pilih Hyphens (-) untuk kebab-case atau Underscores (_) untuk snake_case. It lowercases everything, turns accents menjadi plain letters dan drops symbols. It treats apa pun symbol as a kata break, jadi user_first_name becomes user-first-name dan kembali again. It apakah not pisahkan camelCase, though: userFirstName comes out as userfirstname. Put spaces antara the kata pertama.
untuk SCREAMING_SNAKE_CASE. buat the snake_case version di the slug generator, lalu tempel it menjadi the gratis case konverter dan klik UPPERCASE. Going the other way, lowercase turns MAX_RETRIES menjadi max_retries.
untuk camelCase atau PascalCase. There isn't a satu-klik button. The quickest route: ketik the kata dengan spaces, klik Capitalized Case di the case konverter (user first name becomes User First Name), lalu hapus the spaces untuk PascalCase dan lowercase the pertama letter untuk camelCase.
Many names di once, inside code. untuk a large rename, gunakan Anda editor's temukan-dan-replace dengan a regular expression. Test the pattern pertama di the gratis regex tester: untuk contoh, _([a-z]) finds setiap di bawahscore followed by a letter, the spot di mana snake_case akan need a capital di camelCase. Many editors dapat upper-case the captured letter di the replacement; periksa Anda editor's documentation untuk the syntax.
Things ke watch ketika converting
- Acronyms. Decide whether it's
userIdatauuserID,HtmlParseratauHTMLParser, dan stick dengan it. - angka.
address_line_2converts cleanly;addressLine2adalah fine; hanya don't drop the digit. - Public names. Renaming a JSON field atau URL breaks whoever uses it. Add a redirect untuk URLs dan pertahankan old field names working untuk a selagi di APIs.
konversi Anda teks
Gunakan the gratis case konverter untuk UPPERCASE, lowercase dan Capitalized Case, dan the slug generator untuk kebab-case dan snake_case. Both run di Anda peramban, dan nothing Anda tempel leaves Anda perangkat.
Pertanyaan yang sering diajukan
- Apa itu djikaference antara camelCase dan snake_case?
- camelCase joins kata dan capitalises setiap satu setelah the pertama (
firstName). snake_case keeps kata lowercase dan joins them dengan di bawahscores (first_name). - sebaiknya I gunakan camelCase atau snake_case di JSON?
- Either adalah fine. Match the bahasa most tentang Anda clients gunakan dan stay consistent denganin the API.
- Mengapa apakah CSS gunakan kebab-case?
- CSS adalah designed dengan hyphenated property names like
font-size, dan class names biasanya follow the sama style. Hyphens dapat't menjadi used di most programming-bahasa variable names, which adalah mengapa JavaScript uses camelCase untuk the sama properties. - Apakah kebab-case good untuk URLs?
- Ya. Google recommends hyphens ke separate kata di URLs, dan lowercase avoids case-sensitivity problems.
- Dapatkah the case konverter buat camelCase?
- Not di satu klik. Gunakan Capitalized Case, lalu remove the spaces dan lowercase the pertama letter. untuk kebab-case dan snake_case, gunakan the URL slug generator.
Alat teks
Coba Ubah Huruf Besar Kecil
Gratis, tanpa daftar, berjalan di browser Anda. Tempel teks lalu ubah menjadi HURUF BESAR, huruf kecil, Huruf kalimat, Huruf Judul, atau Kapital Tiap Kata dengan satu klik, lalu salin.
Juga berguna
- Generator Slug URLUbah judul atau teks apa pun menjadi slug URL yang bersih dan berhuruf kecil seperti "my-first-blog-post". Aksen dikonversi (café menjadi cafe), simbol dihapus, dan Anda bisa membuang kata kecil, menetapkan panjang maksimum, atau membuat slug untuk seluruh daftar judul sekaligus.
- Penguji RegexUji regular expression pada teks Anda dan lihat setiap kecocokan disorot saat Anda mengetik, dengan tabel capture group (termasuk yang bernama) dan pratinjau cari-dan-ganti langsung. Alat ini mengikuti aturan regex JavaScript, dan pola yang berjalan terlalu lama dihentikan alih-alih membekukan halaman.