Söz konusu kod burada:
var $item = $(this).parent().parent().find('input');
Değişken adındaki dolar işaretinin amacı nedir, neden sadece hariç tutmuyorsunuz?
document.querySelector
document.querySelectorAll
Söz konusu kod burada:
var $item = $(this).parent().parent().find('input');
Değişken adındaki dolar işaretinin amacı nedir, neden sadece hariç tutmuyorsunuz?
document.querySelector
document.querySelectorAll
Yanıtlar:
Değişkendeki bir '$', bir alt çizgi gibi yorumlayıcıya özel bir şey ifade etmez.
Gördüğüm kadarıyla, jQuery kullanan birçok kişi (örnek kodunuz bana benziyor), kolayca tanımlanmaları ve örneğin tamsayılarla karıştırılmaması için $ ile bir jQuery nesnesi içeren değişkenleri önek eğilimindedir. .
$()
JQuery'deki dolar işareti işlevi , sık kullanılan bir kitaplık işlevidir, bu nedenle kısa bir ad istenir.
var $=function(){}
, yapmakla aynı şeydir var a=function(){}
.
jQuery(document).ready(function($){
... Sonra $ fonksiyon uygulaması içinde kullanılır.
$scope
$ Durumunda, bu addaki karakterlerden biridir. e
Sonunda kalkış yapar gibi , $scope
işe yaramaz, bu yüzden $
iradeyi almak da işe yaramaz. Eğer böyle bir şey görürseniz $( "a" ).addClass( "test" )
, dolar işareti ne olursa olsun tam adıdır.
Örneğinizde, $ adının bir karakteri olmak dışında özel bir önemi yoktur.
Ancak , ECMAScript 6'da (ES6) $ bir Şablon Değişmezini temsil edebilir
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
$ İşareti, değişkenler ve işlevler için bir tanımlayıcıdır.
Bu dolar işareti ne için açık bir açıklama var.
Alternatif bir açıklama: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
Dolar işareti, normal bir harf veya alt çizgi ( _
) gibi ele alınır . Tercüman için özel bir önemi yoktur.
Birçok benzer dilden farklı olarak, Javascript'teki tanımlayıcılar (işlevsel ve değişken adları gibi) yalnızca harf, sayı ve alt çizgi içeremez, aynı zamanda dolar işareti de içerebilir . Bir dolar işareti ile başlamasına izin verilir veya sadece bir dolar işareti ve başka bir şeyden oluşurlar .
Bu nedenle, $
Javascript'te geçerli bir işlev veya değişken adıdır.
Neden bir tanımlayıcıda bir dolar işareti istesin ki?
Sözdizimi, bir tanımlayıcıda dolar işaretinin belirli bir kullanımını zorunlu kılmaz, bu nedenle nasıl kullanmak istediğiniz size bağlıdır. Geçmişte, bir tanımlayıcının yalnızca oluşturulan kodda bir dolar işareti ile, yani elle değil, bir kod oluşturucu tarafından oluşturulan kodla başlatılması önerildi .
Ancak örneğinizde, durum böyle görünmüyor. Birisi sadece eğlenmek için bir dolar işareti koymuş gibi görünüyor - belki de alışkanlıktan ya da başka bir şeyden yapan bir PHP programcısıydı. PHP'de, tüm değişken adlarının önünde bir dolar işareti olmalıdır.
Günümüzde bir tercümanda dolar işareti için başka bir yaygın anlam daha vardır: adı yalnızca tek bir dolar işaretinden ( $
) oluşan jQuery nesnesi . Bu, Prototip gibi önceki Javascript çerçevelerinden ödünç alınan bir kuraldır ve jQuery bu tür diğer çerçevelerle kullanılırsa, her ikisi de adı kullanacakları için bir ad çakışması olacaktır $
(jQuery, global nesnesi için farklı bir ad kullanacak şekilde yapılandırılabilir) . Javascript'te jQuery'nin tek dolar işaretini nesne adı olarak kullanmasına izin veren özel bir şey yoktur; Yukarıda belirtildiği gibi, sadece başka bir geçerli tanımlayıcı adıdır.
var $j = jQuery.noConflict();
$ j jQuery nesnesidir.
Dolar işareti 2015-2016 ecmascript'te 'şablon değişmez değerler' olarak kullanılır. Misal:
var a = 5;
var b = 10;
console.log(`Sum is equal: ${a + b}`); // 'Sum is equlat: 15'
İşte çalışma örneği: https://es6console.com/j3lg8xeo/ Bu işarete dikkat edin " ` ", normal tırnak işaretleri değil.
U, jQuery kütüphanesiyle çalışırken $ ile de tanışabilir .
Normal İfadelerdeki $ işareti satır sonu anlamına gelir.
Sebep yok. Belki kodlayan kişi PHP'den geldi. "_İtem" veya "item" veya "item $$" olarak adlandırdığınız gibi aynı etkiye sahiptir.
Bir sonek olarak ("item $", telaffuz edilen "items" gibi), Macar gösterimine benzer şekilde "Fin Notasyonu" adı verilen bir sözleşme olarak DOM öğesi gibi gözlemlenebilir bir ifadeyi ifade edebilir .
İşte kısa bir video açıklaması: https://www.youtube.com/watch?v=Acm-MD_6934
Ecma Uluslararası Tanımlayıcı Adlarına göre , Unicode standardının 5. bölümünün “Tanımlayıcılar” bölümünde verilen dilbilgisine göre , bazı küçük değişikliklerle yorumlanan tokenlerdir. Tanımlayıcı, ReservedWord olmayan bir TanımlayıcıAdıdır ( bkz. 7.6.1 ). Unicode tanımlayıcı dilbilgisi, Unicode Standardı tarafından belirtilen normatif ve bilgilendirici karakter kategorilerini temel alır. Unicode standardının 3.0 sürümünde belirtilen kategorilerdeki karakterlere, tüm uygun ECMAScript uygulamaları tarafından bu kategorilerdeki gibi davranılmalıdır. Bu standart, belirli karakter eklemelerini belirtir:
Dolar işareti ($) ve alt çizgiye (_) bir IdentifierName içinde herhangi bir yerde izin verilir .
Daha fazla bilgi için: http://www.ecma-international.org/ecma-262/5.1/#sec-7.6
Ecma International , 1961 yılında kurulmuş ve Bilgi ve İletişim Teknolojileri (BİT) ve Tüketici Elektroniği (CE) standartlarına adanmış bir endüstri birliğidir.
JQuery kullanılırken $
, değişken adında sembolün önek olarak kullanılması yalnızca kural gereğidir; tamamen isteğe bağlıdır ve yalnızca değişkenin örneğinizde olduğu gibi bir jQuery nesnesini içerdiğini belirtmeye yarar.
Bu, nesneye başka bir jQuery işlevinin çağrılması gerektiğinde, onu $()
tekrar sarmanıza gerek kalmayacağı anlamına gelir . Örneğin, bunları karşılaştırın:
// 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
İle $
önek zaten jQuery nesneleri tutan değişkenleri anında tanınabilir ve kod daha okunabilir ve birlikte ortadan kaldırır çift / çoklu sarma $()
.