2009-07-19 31 views
116

में "$" साइन का अर्थ क्या है निम्नलिखित जावास्क्रिप्ट कोड में एक डॉलर चिह्न $ है। इसका क्या मतलब है?जावास्क्रिप्ट

$(window).bind('load', function() { 
    $('img.protect').protectImage(); 
}); 
+0

भी देखें: http: //

यहाँ jQuery डॉक से एक नमूना है stackoverflow.com/a/553734/43615 (एक जावास्क्रिप्ट चर एक डॉलर के चिह्न के साथ क्यों शुरू होगा?) –

उत्तर

238

कोड का आपका स्निपेट लोकप्रिय जावास्क्रिप्ट पुस्तकालयों (jQuery, ProtoType, mooTools, आदि) में से एक के संदर्भ संदर्भों की तरह दिखता है।

जावास्क्रिप्ट में $ के उपयोग के बारे में कुछ भी रहस्यमय नहीं है। $ बस एक मान्य जावास्क्रिप्ट पहचानकर्ता है।

जावास्क्रिप्ट ऊपरी और निचले अक्षरों, संख्याओं, और $ और _ की अनुमति देता है। $ का उद्देश्य मशीन से उत्पन्न चर के लिए उपयोग किया जाना था (जैसे $0001)।

प्रोटोटाइप, jQuery, और अधिकांश जावास्क्रिप्ट पुस्तकालय प्राथमिक आधार ऑब्जेक्ट (या फ़ंक्शन) के रूप में $ का उपयोग करते हैं। उनमें से अधिकतर को $ को छोड़ने का एक तरीका भी है ताकि इसका उपयोग किसी अन्य लाइब्रेरी के साथ किया जा सके जो इसका उपयोग करता है। उस स्थिति में आप $ के बजाय jQuery का उपयोग करें। वास्तव में, $jQuery के लिए सिर्फ एक शॉर्टकट है।

+12

यह स्वीकार किए गए एक से बेहतर जवाब है। +1 –

+2

@ पाओलो बर्गान्तिन, हाँ मुझे ऐसा लगता है ... – coderex

+0

@ पाओलो: बिल्कुल सुनिश्चित नहीं है कि आपका क्या मतलब है। (मेरा पहले स्वीकार किया गया एक, मुझे लगता है।) ठीक है, मैंने सोचा कि मेरा कम से कम सही था। इसमें सहायक जानकारी शामिल है, लेकिन मुझे यकीन नहीं है कि यह "बहुत" को उचित ठहराता है ... – Noldorin

34

कि jQuery कोड सबसे अधिक संभावना है (अधिक सटीक, जावास्क्रिप्ट jQuery पुस्तकालय का उपयोग)।

$jQuery Function का प्रतिनिधित्व करता है, और वास्तव में jQuery के लिए एक शॉर्टंड उर्फ ​​है। (अधिकांश भाषाओं के विपरीत, $ प्रतीक आरक्षित नहीं है, और इसे एक चर नाम के रूप में उपयोग किया जा सकता है।) आमतौर पर इसे चयनकर्ता (यानी एक फ़ंक्शन जो डीओएम में पाए गए तत्वों का एक सेट देता है) के रूप में उपयोग किया जाता है।

+6

यह प्रोटो है टाइप का चयनकर्ता भी .. –

+3

आपको यह जोड़ना चाहिए कि $ x की तरह ही है, यह आपके द्वारा असाइन किया जा सकता है – hasen

+0

कोड का यह टुकड़ा क्या है: $ input.prop ('type') == 'रेडियो'; – OKGimmeMoney

29

another answer से:

एक छोटी सी इतिहास

याद रखें, '$' के बारे में स्वाभाविक कुछ खास नहीं है। यह किसी भी अन्य की तरह एक परिवर्तनीय नाम है। शुरुआती दिनों में, लोग document.getElementById का उपयोग करके कोड लिखते थे। चूंकि जावास्क्रिप्ट केस-संवेदी है, इसलिए दस्तावेज़ लिखते समय गलती करना सामान्य था .getElementById। क्या मुझे 'बी' की पूंजी 'बी' चाहिए? क्या मुझे आईडी की पूंजी 'i' चाहिए? आपको बहाव मिलता है। क्योंकि कार्यों जावास्क्रिप्ट में प्रथम श्रेणी के नागरिक हैं, तो आप हमेशा इस

var $ = document.getElementById; //freedom from document.getElementById! 

[संपादित कर सकते हैं: Firefox 3 और गूगल क्रोम, you can't make alias so easily में ऐसा लगता है। आईई 6 और फ़ायरफ़ॉक्स 2 में, तकनीक के ऊपर अभी भी काम करता है।]

जब प्रोटोटाइप लाइब्रेरी पहुंची, तो उन्होंने अपना कार्य नाम दिया, जो डीओएम तत्वों को टाइपिंग/पठनीयता पर सहेजने के लिए '$' के रूप में प्राप्त करता है [जेएस कोड लिखते समय, अधिकांश कुछ डीओएम तत्वों का चयन करने के साथ आप शुरू करते हैं]। लगभग सभी जावास्क्रिप्ट पुस्तकालयों ने इस विचार की प्रतिलिपि बनाई। प्रोटोटाइप ने सीएसएस चयनकर्ता का उपयोग कर तत्वों का चयन करने के लिए $$ फ़ंक्शन भी पेश किया।

jQuery ने न केवल '$ फ़ंक्शन' को अनुकूलित किया, बल्कि इसे आपके इच्छित तत्वों को प्राप्त करने के लिए सभी प्रकार के 'चयनकर्ता' को स्वीकार करने के लिए विस्तारित किया।अब, यदि आप पहले से ही अपने प्रोजेक्ट में प्रोटोटाइप का उपयोग कर रहे हैं और jQuery शामिल करना चाहते हैं, तो आप समस्या में होंगे क्योंकि '$' या तो प्रोटोटाइप के कार्यान्वयन या jQuery के कार्यान्वयन को संदर्भित कर सकता है। यही कारण है कि jQuery में NoConflict का विकल्प है ताकि आप अपनी प्रोजेक्ट में jQuery शामिल कर सकें जो प्रोटोटाइप का उपयोग करता है और धीरे-धीरे अपना कोड माइग्रेट करता है। मुझे लगता है कि यह जॉन के हिस्से पर एक शानदार कदम था! :)

+8

'var $ = document.getElementById;' फ़ायरफ़ॉक्स या Google क्रोम में काम नहीं करता है। आपको 'फ़ंक्शन $ (आईडी) {वापसी दस्तावेज़.getElementById (आईडी) का उपयोग करना चाहिए; } 'बदले में। अधिक जानकारी के लिए http://stackoverflow.com/questions/1007340 देखें। –

+0

मुझे यह नहीं पता था, धन्यवाद अनुदान। मैं पुष्टि कर सकता हूं कि यह आईई 6 के साथ-साथ फ़ायरफ़ॉक्स 2 में काम करता था क्योंकि मैं अक्सर इस तकनीक का उपयोग करता था। मैं अपना मुख्य पोस्ट अपडेट करूंगा। – SolutionYogi

1

jQuery प्रलेखन से jQuery Core Object का वर्णन:

कई डेवलपर चर है कि आदेश में मदद करने के अंतर में jQuery वस्तुओं को शामिल के नाम करने के लिए एक $ लगा दें। इस अभ्यास के के बारे में जादू कुछ भी नहीं है - यह केवल कुछ लोगों को ट्रैक करता है कि चर के अलग-अलग ट्रैक हैं।

5

जैसा कि अन्य सभी उत्तरों कहते हैं; यह लगभग कुछ भी हो सकता है लेकिन आमतौर पर "JQuery" होता है।

हालांकि, ES6 में यह template "literal" उदाहरण में एक स्ट्रिंग इंटरपोलेशन ऑपरेटर है।

var s = "new" ; // you can put whatever you think appropriate here. 
var s2 = `There are so many ${s} ideas these days !!` ; //back-ticks not quotes 
console.log(s2) ; 

परिणाम:

इतने सारे नए विचारों इन दिनों कर रहे हैं !!

+0

यह एक उपयोगी उत्तर है! यह वह था जिसे मैं ढूंढ रहा था क्योंकि मुझे पता था कि हमारे पास jQuery या कोई अन्य लाइब्रेरी नहीं है। यह मूल रूप से कोट्स और प्लस-साइन्स इत्यादि के बिना एक बड़े स्ट्रिंग के अंदर एक चर मुद्रण करने का एक तरीका है। –

1

उपरोक्त उत्तरों के अतिरिक्त, $ जावास्क्रिप्ट में कोई विशेष अर्थ नहीं है, यह ऑब्जेक्ट नामकरण में उपयोग किया जा सकता है। jQuery में, यह jQuery ऑब्जेक्ट और jQuery() फ़ंक्शन के लिए बस उपनाम के रूप में उपयोग किया जाता है। हालांकि, आप उन परिस्थितियों का सामना कर सकते हैं जहां आप इसका उपयोग किसी अन्य जेएस लाइब्रेरी के साथ संयोजन में करना चाहते हैं जो $ का भी उपयोग करता है, जिसके परिणामस्वरूप नामकरण संघर्ष होता है। इस कारण से JQuery में एक विधि है, jQuery.noConflict()

<script src="other_lib.js"></script> 
<script src="jquery.js"></script> 
<script> 
$.noConflict(); 
// Code that uses other library's $ can follow here. 
</script> 

या फिर, आप की तरह इस

(function ($) { 
// Code in which we know exactly what the meaning of $ is 
} (jQuery)); 

Ref एक का उपयोग कर सकते हैं:: https://api.jquery.com/jquery.noconflict/

संबंधित मुद्दे