Kode yang dimaksud ada di sini:
var $item = $(this).parent().parent().find('input');
Apa tujuan dari tanda dolar dalam nama variabel, mengapa tidak mengecualikannya?
document.querySelector
dandocument.querySelectorAll
Kode yang dimaksud ada di sini:
var $item = $(this).parent().parent().find('input');
Apa tujuan dari tanda dolar dalam nama variabel, mengapa tidak mengecualikannya?
document.querySelector
dandocument.querySelectorAll
Jawaban:
A '$' dalam suatu variabel tidak berarti apa-apa istimewa bagi penerjemah, seperti halnya garis bawah.
Dari apa yang saya lihat, banyak orang yang menggunakan jQuery (yang merupakan contoh kode Anda bagi saya) cenderung memberikan awalan variabel yang berisi objek jQuery dengan $ sehingga mereka mudah diidentifikasi dan tidak tercampur dengan, katakanlah, bilangan bulat .
Fungsi tanda dolar $()
di jQuery adalah fungsi perpustakaan yang sering digunakan, sehingga nama pendek diinginkan.
var $=function(){}
sama dengan melakukan var a=function(){}
.
jQuery(document).ready(function($){
... Kemudian $ digunakan di dalam implementasi fungsi.
$scope
$ adalah salah satu karakter dalam nama itu. Sama seperti jika Anda melepas e
pada akhir $scope
, itu tidak akan berhasil, jadi mengambil $
juga tidak akan berhasil. Jika Anda melihat sesuatu seperti $( "a" ).addClass( "test" )
, tanda dolar adalah seluruh nama apa pun itu.
Dalam contoh Anda, $ tidak memiliki arti khusus selain menjadi karakter nama.
Namun , dalam ECMAScript 6 (ES6) $ dapat mewakili Templat Literal
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
Tanda $ adalah pengidentifikasi untuk variabel dan fungsi.
Itu memiliki penjelasan yang jelas untuk apa tanda dolar itu.
Berikut penjelasan alternatif: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
Tanda dolar diperlakukan seperti huruf normal atau garis bawah ( _
). Ini tidak memiliki arti khusus bagi penerjemah.
Tidak seperti banyak bahasa yang serupa, pengidentifikasi (seperti nama fungsional dan variabel) dalam Javascript tidak hanya berisi huruf, angka, dan garis bawah, tetapi juga dapat berisi tanda dolar . Mereka bahkan diizinkan untuk memulai dengan tanda dolar, atau hanya terdiri dari tanda dolar dan tidak ada yang lain.
Dengan demikian, $
adalah fungsi yang valid atau nama variabel dalam Javascript.
Mengapa Anda ingin tanda dolar di pengidentifikasi?
Sintaksnya tidak benar-benar menegakkan penggunaan tanda dolar pada pengenal tertentu, jadi terserah Anda bagaimana Anda ingin menggunakannya. Di masa lalu, sering direkomendasikan untuk memulai pengidentifikasi dengan tanda dolar hanya dalam kode yang dihasilkan - yaitu, kode yang dibuat bukan dengan tangan tetapi oleh pembuat kode.
Namun, dalam contoh Anda, ini tampaknya bukan masalahnya. Sepertinya seseorang baru saja meletakkan tanda dolar di awal untuk bersenang-senang - mungkin mereka adalah programmer PHP yang melakukannya karena kebiasaan, atau sesuatu. Di PHP, semua nama variabel harus memiliki tanda dolar di depannya.
Ada makna umum lain untuk tanda dolar dalam juru bahasa saat ini: objek jQuery, yang namanya hanya terdiri dari tanda dolar tunggal ( $
). Ini adalah konvensi yang dipinjam dari kerangka kerja Javascript sebelumnya seperti Prototipe, dan jika jQuery digunakan dengan kerangka kerja lainnya, akan ada bentrokan nama karena keduanya akan menggunakan nama $
(jQuery dapat dikonfigurasi untuk menggunakan nama yang berbeda untuk objek globalnya) . Tidak ada yang istimewa dalam Javascript yang memungkinkan jQuery untuk menggunakan tanda dolar tunggal sebagai nama objeknya; seperti yang disebutkan di atas, itu hanyalah nama pengenal yang valid.
var $j = jQuery.noConflict();
sekarang $ j adalah objek jQuery.
Tanda dolar digunakan dalam ecmascript 2015-2016 sebagai 'templat literals'. Contoh:
var a = 5;
var b = 10;
console.log(`Sum is equal: ${a + b}`); // 'Sum is equlat: 15'
Berikut contoh yang berfungsi: https://es6console.com/j3lg8xeo/ Perhatikan tanda ini " ` ", ini bukan kutipan normal.
Anda juga dapat bertemu $ saat bekerja dengan jQuery perpustakaan .
$ sign in Regular Expressions berarti end of line.
Tak ada alasan. Mungkin orang yang mengkodekannya berasal dari PHP. Ini memiliki efek yang sama seperti jika Anda menamainya "_item" atau "item" atau "item $$".
Sebagai sufiks (seperti "item $", dilafalkan "items"), itu dapat menandakan yang dapat diamati seperti elemen DOM sebagai konvensi yang disebut "Notasi Finlandia" yang mirip dengan Notasi Hongaria.
Berikut ini penjelasan video pendek yang bagus: https://www.youtube.com/watch?v=Acm-MD_6934
Menurut Ecma International Identifier Names adalah token yang ditafsirkan sesuai dengan tata bahasa yang diberikan dalam bagian "Identifiers" bab 5 dari standar Unicode, dengan beberapa modifikasi kecil. Identifier adalah IdentifierName yang bukan ReservedWord ( lihat 7.6.1 ). Tata bahasa pengidentifikasi Unicode didasarkan pada kategori karakter normatif dan informatif yang ditentukan oleh Standar Unicode. Karakter dalam kategori yang ditentukan dalam versi 3.0 dari standar Unicode harus diperlakukan seperti dalam kategori tersebut oleh semua yang memenuhi implementasi ECMAScript. Standar ini menentukan penambahan karakter spesifik:
Tanda dolar ($) dan garis bawah (_) diizinkan di mana saja di IdentifierName .
Bacaan lebih lanjut dapat ditemukan di: http://www.ecma-international.org/ecma-262/5.1/#sec-7.6
Ecma International adalah asosiasi industri yang didirikan pada tahun 1961 dan didedikasikan untuk standardisasi Teknologi Informasi dan Komunikasi (TIK) dan Elektronik Konsumen (CE).
Saat menggunakan jQuery, penggunaan $
simbol sebagai awalan dalam nama variabel hanya dengan konvensi; ini sepenuhnya opsional dan hanya berfungsi untuk menunjukkan bahwa variabel tersebut memegang objek jQuery, seperti pada contoh Anda.
Ini berarti bahwa ketika fungsi jQuery lain perlu dipanggil pada objek, Anda tidak perlu membungkusnya $()
lagi. Sebagai contoh, bandingkan ini:
// the usual way
var item = $(this).parent().parent().find('input');
$(item).hide(); // this is a double wrap, but required for code readability
item.hide(); // this works but is very unclear how a jQuery function is getting called on this
// with $ prefix
var $item = $(this).parent().parent().find('input');
$item.hide(); // direct call is clear
$($item).hide(); // this works too, but isn't necessary
Dengan $
awalan, variabel yang sudah memegang objek jQuery dapat dikenali secara instan dan kode lebih mudah dibaca, serta menghilangkan pembungkus ganda / banyak $()
.