Saya cukup sering melihat JavaScript dengan variabel yang dimulai dengan tanda dolar. Kapan / mengapa Anda memilih untuk awalan variabel dengan cara ini?
(Saya tidak bertanya tentang $('p.foo')
sintaks yang Anda lihat di jQuery dan lainnya, tetapi variabel normal suka $name
dan $order
)
Jawaban:
Penggunaan yang sangat umum di jQuery adalah untuk membedakan jQuery objek disimpan dalam variabel dari variabel lain.
Sebagai contoh, saya akan mendefinisikan:
Saya menemukan ini sangat membantu dalam menulis kode jQuery dan membuatnya mudah untuk melihat objek jQuery yang memiliki set properti yang berbeda.
sumber
Dalam ECMAScript Edisi 1, 2, dan 3 , menggunakan nama variabel $ -prefixed secara eksplisit tidak disarankan oleh spec kecuali dalam konteks kode autogenerated:
Namun, dalam versi berikutnya ( Edisi ke - 5 , yang saat ini), pembatasan ini dibatalkan, dan bagian di atas diganti dengan
Dengan demikian, tanda $ sekarang dapat digunakan secara bebas dalam nama variabel. Kerangka kerja dan perpustakaan tertentu memiliki konvensi sendiri tentang arti simbol, yang dicatat dalam jawaban lain di sini.
sumber
$variable
, kemungkinan karena berisi seluruh objek jQuery.Seperti orang lain telah menyebutkan tanda dolar dimaksudkan untuk digunakan oleh kode yang dihasilkan secara mekanis. Namun, konvensi itu telah dipatahkan oleh beberapa perpustakaan JavaScript yang sangat populer. JQuery, Prototype dan MS AJAX (AKA Atlas) semua menggunakan karakter ini dalam pengidentifikasi mereka (atau sebagai pengidentifikasi keseluruhan).
Singkatnya, Anda dapat menggunakan
$
kapan saja Anda inginkan. (Penerjemah tidak akan mengeluh.) Pertanyaannya adalah kapan Anda ingin menggunakannya?Saya pribadi tidak menggunakannya, tapi saya pikir penggunaannya valid. Saya pikir MS AJAX menggunakannya untuk menandakan bahwa suatu fungsi adalah alias untuk beberapa panggilan verbal.
Sebagai contoh:
Itu tampak seperti konvensi yang masuk akal.
sumber
Dalam konteks AngularJS,
$
awalan hanya digunakan untuk pengidentifikasi dalam kode kerangka kerja. Pengguna kerangka kerja diperintahkan untuk tidak menggunakannya dalam pengidentifikasi mereka sendiri:Sumber: https://docs.angularjs.org/api
sumber
Saya adalah orang yang memulai konvensi ini pada tahun 2006 dan mempromosikannya di milis awal jQuery, jadi izinkan saya berbagi beberapa sejarah dan motivasi di sekitarnya.
Jawaban yang diterima memberikan contoh ini:
Tapi itu tidak benar-benar menggambarkannya dengan baik. Bahkan tanpa
$
, kita masih akan memiliki dua nama variabel yang berbeda di sini,email
danemail_field
. Cukup bagus di sana. Mengapa kita perlu membuang$
salah satu nama ketika kita sudah memiliki dua nama yang berbeda?Sebenarnya, saya tidak akan menggunakan di
email_field
sini karena dua alasan:names_with_underscores
bukan JavaScript idiomatik, danfield
tidak terlalu masuk akal untuk elemen DOM. Tapi saya memang mengikuti ide yang sama.Saya mencoba beberapa hal berbeda, di antaranya sesuatu yang sangat mirip dengan contoh:
(Tentu saja objek jQuery dapat memiliki lebih dari satu elemen DOM, tetapi kode yang saya kerjakan memiliki banyak
id
penyeleksi, jadi dalam kasus tersebut ada korespondensi 1: 1.)Saya punya kasus lain di mana fungsi menerima elemen DOM sebagai parameter dan juga membutuhkan objek jQuery untuk itu:
Yah itu agak membingungkan! Di salah satu bit kode saya,
email
adalah objek jQuery danemailElement
merupakan elemen DOM, tetapi di bagian lain,email
adalah elemen DOM danemailJQ
merupakan objek jQuery.Tidak ada konsistensi dan saya terus mencampurnya. Ditambah itu sedikit gangguan untuk tetap harus membuat dua nama berbeda untuk hal yang sama: satu untuk objek jQuery dan satu lagi untuk elemen DOM yang cocok. Selain itu
email
,,emailElement
danemailJQ
, saya terus mencoba variasi lain juga.Lalu saya perhatikan pola umum:
Karena JavaScript memperlakukan
$
hanya sebagai huruf untuk nama, dan karena saya selalu mendapatkan objek jQuery kembali dari$(whatever)
panggilan, polanya akhirnya menyadarkan saya. Saya bisa menerima$(...)
telepon dan menghapus beberapa karakter, dan itu akan muncul dengan nama yang cukup bagus:Strikeout tidak sempurna, tetapi Anda mungkin mendapatkan idenya: dengan beberapa karakter dihapus, kedua baris tersebut pada akhirnya tampak seperti:
Saat itulah saya menyadari saya tidak perlu membuat konvensi seperti
emailElement
atauemailJQ
. Sudah ada konvensi yang bagus menatapku: mengambil beberapa karakter dari$(whatever)
panggilan dan berubah menjadi$whatever
.dan:
Jadi saya tidak harus membuat dua nama yang berbeda sepanjang waktu, tetapi cukup menggunakan nama yang sama dengan atau tanpa
$
awalan. Dan$
awalan adalah pengingat yang bagus bahwa saya berurusan dengan objek jQuery:atau:
sumber
Stevo benar, arti dan penggunaan tanda skrip dolar (dalam Javascript dan platform jQuery, tetapi tidak dalam PHP) sepenuhnya semantik. $ adalah karakter yang dapat digunakan sebagai bagian dari nama pengenal. Selain itu, tanda dolar mungkin bukan hal paling "aneh" yang dapat Anda temui di Javascript. Berikut adalah beberapa contoh nama pengidentifikasi yang valid:
Semua contoh di atas akan berfungsi.
Coba mereka.
sumber
$ Karakter tidak memiliki arti khusus untuk mesin JavaScript. Ini hanya karakter lain yang valid dalam nama variabel seperti az, AZ, _, 0-9, dll ...
sumber
$
tidak membawa arti khusus dalam JavaScript. Titik.Karena
_
pada awal nama variabel sering digunakan untuk menunjukkan variabel pribadi (atau setidaknya satu yang dimaksudkan untuk tetap pribadi), saya menemukan$
nyaman untuk menambahkan di depan alias singkat saya sendiri ke perpustakaan kode generik.Misalnya, saat menggunakan jQuery, saya lebih suka menggunakan variabel
$J
(bukan hanya$
) dan menggunakan$P
saat menggunakan php.js, dll.Awalan membuatnya berbeda secara visual dari variabel lain seperti variabel statis saya sendiri, memberi saya fakta bahwa kode tersebut adalah bagian dari beberapa pustaka atau lainnya, dan kecil kemungkinannya akan konflik atau membingungkan orang lain setelah mereka mengetahui konvensi.
Itu juga tidak mengacaukan kode (atau memerlukan pengetikan ekstra) seperti halnya nama yang ditentukan sepenuhnya diulang untuk setiap panggilan perpustakaan.
Saya suka menganggapnya mirip dengan apa yang dilakukan tombol pengubah untuk memperluas kemungkinan tombol tunggal.
Tapi ini hanya konvensi saya sendiri.
sumber
Seperti yang saya alami selama 4 tahun terakhir, itu akan memungkinkan seseorang untuk dengan mudah mengidentifikasi apakah variabel menunjuk nilai / objek atau elemen DOM dibungkus jQuery
dalam contoh di atas ketika saya melihat variabel "$ dataDiv" saya dapat dengan mudah mengatakan bahwa variabel ini menunjuk ke elemen DOM yang dibungkus jQuery (dalam hal ini adalah div). dan juga saya bisa memanggil semua metode jQuery tanpa membungkus objek lagi seperti $ dataDiv.append (), $ dataDiv.html (), $ dataDiv.find (), bukan $ ($ dataDiv) .append ().
Semoga ini bisa membantu. jadi akhirnya ingin mengatakan bahwa itu akan menjadi praktik yang baik untuk mengikuti ini tetapi tidak wajib.
sumber
${varname}
hanyalah konvensi penamaan yang digunakan pengembang jQuery untuk membedakan variabel yang memegang elemen jQuery.Plain
{varname}
digunakan untuk menyimpan barang-barang umum seperti teks dan string.${varname}
memegang elemen yang dikembalikan dari jQuery.Anda bisa menggunakan polos
{varname}
untuk menyimpan elemen jQuery juga, tetapi seperti yang saya katakan di awal ini membedakannya dari variabel polos dan membuatnya lebih mudah untuk dipahami (bayangkan membingungkannya untuk variabel polos dan mencari di seluruh untuk memahami apa yang dipegangnya) .Sebagai contoh :
Di sini, bla sedang menyimpan elemen jQuery yang dikembalikan.
Jadi, ketika orang lain melihat
$blah
dalam kode, mereka akan mengerti itu bukan hanya string atau angka, itu elemen jQuery.sumber
Meskipun Anda dapat menggunakannya untuk awalan pengidentifikasi Anda, itu seharusnya digunakan untuk kode yang dihasilkan, misalnya token pengganti dalam templat, misalnya.
sumber
Penggunaan sudut adalah untuk properti yang dihasilkan oleh framework. Tebak, mereka akan dengan petunjuk (sekarang sudah tidak ada) yang disediakan oleh ECMA-262 3.0.
sumber
$ digunakan untuk membedakan antara variabel umum dan variabel jquery jika variabel normal. membiarkan Anda memesan di FLIPKART maka jika pesanan adalah variabel yang menunjukkan kepada Anda keluaran string maka itu dinamai sederhana sebagai "pesanan" tetapi jika kita mengklik pesanan tempat maka objek dikembalikan maka objek akan dilambangkan dengan $ sebagai "$ memesan "sehingga pemrogram dapat menghapus variabel javascript dan variabel jquery di seluruh kode.
sumber
Jika Anda melihat tanda dolar ($) atau tanda dolar ganda ($$), dan ingin tahu apa artinya ini dalam kerangka Prototipe, inilah jawaban Anda:
Sumber:
http://www.prototypejs.org/api/utility/dollar-dollar
sumber
Alasan saya kadang-kadang menggunakan konvensi nama php dengan variabel javascript: Saat melakukan validasi input, saya ingin menjalankan algoritma yang persis sama, baik sisi klien, maupun sisi server. Saya benar-benar ingin kedua sisi kode terlihat semirip mungkin, untuk mempermudah perawatan. Menggunakan tanda dolar dalam nama variabel membuat ini lebih mudah.
(Juga, beberapa fungsi pembantu yang bijaksana membantu membuat kode terlihat serupa, misalnya membungkus pencarian nilai-input, versi non-OO dari strlen, substr, dll. Namun masih membutuhkan beberapa penyesuaian manual.)
sumber
Shuold pengidentifikasi JavaScript yang valid harus dimulai dengan huruf, garis bawah (_), atau tanda dolar ($); karakter selanjutnya juga bisa berupa digit (0-9). Karena JavaScript peka terhadap huruf besar-kecil, huruf menyertakan karakter "A" hingga "Z" (huruf besar) dan karakter "a" hingga "z" (huruf kecil).
Detail:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Variables
sumber