जावास्क्रिप्ट में "$" चिन्ह का अर्थ क्या है


167

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

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

1
इन्हें भी देखें: stackoverflow.com/a/553734/43615 (डॉलर चिह्न के साथ एक जावास्क्रिप्ट चर क्यों शुरू होगा?)
थॉमस टेंपेलमैन

जवाबों:


284

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

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

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

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


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

1
@ नोल्डोरिन: सहायक जानकारी एक अच्छी बात है। आपके प्रश्न ने $ $ उपयोग किए जाने के कारण का बिल्कुल उल्लेख नहीं किया था, इस कारण से कि इसका उपयोग क्यों किया जा सकता है, और वास्तव में jQuery सिर्फ कई पुस्तकालयों में से एक है जो इसका उपयोग करते हैं। एक स्वीकृत उत्तर के रूप में इसका मतलब है कि यह एक प्रश्न के लिए सबसे अच्छा संभव उत्तर है, और यह नहीं था।
पाओलो बरगीनो

+1 यह एक मान्य जावास्क्रिप्ट पहचानकर्ता है जो पहले और अक्सर जावास्क्रिप्ट फ्रेमवर्क द्वारा एक उपनाम के रूप में उपयोग किया जाता है।
गुमबो

@ पाओलो: अक्सर, हाँ। हालांकि इस बात का कोई संकेत नहीं था कि ओपी इस बारे में जानना चाहता है। सीधा जवाब भी अच्छी बात है। :) यह कहते हुए कि, मैं अभी भी सहमत हूँ कि यह एक बेहतर उत्तर है। मेरी एकमात्र वक्रोक्ति उस जोर के साथ थी जो आप एक विशेष बिंदु पर रख रहे थे।
नोल्डोरिन

2
BTW, मैंने अपनी पोस्ट में $ फ़ंक्शन के पीछे थोड़ा इतिहास प्रदान किया है: stackoverflow.com/questions/1122690/jquery-and-questions/…
SolutionYogi

44

से एक और उत्तर :

थोड़ा इतिहास

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

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

जब प्रोटोटाइप लाइब्रेरी का आगमन हुआ, तो उन्होंने अपने फ़ंक्शन को नाम दिया, जिसे DOM तत्व मिलते हैं, जैसा कि '$'। लगभग सभी जावास्क्रिप्ट पुस्तकालयों ने इस विचार की नकल की। प्रोटोटाइप ने $$सीएसएस चयनकर्ता का उपयोग करके तत्वों का चयन करने के लिए एक फ़ंक्शन भी पेश किया ।

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


10
var $ = document.getElementById;फ़ायरफ़ॉक्स या Google क्रोम में काम नहीं करता है। आपको function $(id) { return document.getElementById(id); }इसके बजाय उपयोग करना चाहिए । अधिक जानकारी के लिए stackoverflow.com/questions/1007340 देखें ।
ग्रांट वैगनर

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

42

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

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


3
आप जोड़ना चाहिए कि $ सिर्फ एक्स की तरह है, यह कुछ भी आप इसे करने के आवंटित किया जा सकता है
Hasen

इस कोड का क्या अर्थ है: $ input.prop ('प्रकार') == 'रेडियो';
OKGimmeMoney

21

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

हालांकि, ईएस 6 में यह एक टेम्पलेट "शाब्दिक" उदाहरण में एक स्ट्रिंग प्रक्षेप ऑपरेटर है ।

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) ;

परिणाम:

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


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


4

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

यहाँ jQuery के डॉक्टर से एक नमूना है :

<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));

रेफरी : https://api.jquery.com/jquery.noconflict/


3

JQuery कोर ऑब्जेक्ट का वर्णन करने वाले jQuery के दस्तावेज़ से :

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.