জাভাস্ক্রিপ্টে "$" সাইনটির অর্থ কী


167

নিম্নলিখিত জাভাস্ক্রিপ্ট কোডে একটি ডলার ( $) সাইন আছে। এর মানে কী?

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

1
আরও দেখুন: stackoverflow.com/a/553734/43615 (কেন একটি JavaScript পরিবর্তনশীল একটি ডলার চিহ্ন দিয়ে শুরু করবেন?)
থমাস Tempelmann

উত্তর:


284

আপনার কোডের স্নিপেট দেখে মনে হচ্ছে এটি জনপ্রিয় জাভাস্ক্রিপ্ট লাইব্রেরিগুলির একটি (jQuery, প্রোটোটাইপ, mooTools, এবং অন্যান্য) থেকে পদ্ধতিগুলি উল্লেখ করে।

$জাভাস্ক্রিপ্টের ব্যবহার সম্পর্কে রহস্যজনক কিছু নেই । $কেবলমাত্র একটি বৈধ জাভাস্ক্রিপ্ট শনাক্তকারী।

জাভাস্ক্রিপ্ট উপরের এবং নিম্ন বর্ণগুলি, সংখ্যা এবং $এবং এর অনুমতি দেয় _$মেশিন-জেনারেট ভেরিয়েবল (যেমন জন্য ব্যবহার করা হবে জন্যই ছিল $0001)।

প্রোটোটাইপ, jQuery, এবং বেশিরভাগ জাভাস্ক্রিপ্ট গ্রন্থাগারগুলি $প্রাথমিক বেস অবজেক্ট (বা ফাংশন) হিসাবে ব্যবহার করে । তাদের বেশিরভাগেরও ত্যাগ করার একটি উপায় রয়েছে $যাতে এটি ব্যবহার করা অন্য লাইব্রেরির সাথে এটি ব্যবহার করা যায়। সেক্ষেত্রে আপনি এর jQueryপরিবর্তে ব্যবহার করুন $। আসলে, এর $জন্য কেবল একটি শর্টকাট jQuery


2
@ পাওলো: ঠিক কী বোঝাতে চেয়েছেন তা নিশ্চিত নয়। (আমার আগে গ্রহণযোগ্য এক, আমি ধরে নিই।) ভাল, আমি ভেবেছিলাম আমার কাজটি কমপক্ষে পুরোপুরি সঠিক। এর মধ্যে কিছুটা আনুষঙ্গিক তথ্য অন্তর্ভুক্ত রয়েছে তবে আমি নিশ্চিত নই যে এটি "অনেকগুলি" ন্যায্যতা দেয় ...
নলডোরিন

1
@ নলডোরিন: সহায়ক তথ্য একটি ভাল জিনিস। আপনার প্রশ্নটি কেন ব্যবহৃত হয়েছিল - এটি কেন ব্যবহার করা যেতে পারে তার কারণ সম্পর্কে সত্যই কোনও উল্লেখ করেনি এবং সত্য যে jQuery এটি ব্যবহার করে এমন অনেকগুলি গ্রন্থাগারের মধ্যে একটি। এটি একটি স্বীকৃত উত্তর হিসাবে হওয়া মানে এটি কোনও প্রশ্নের সর্বোত্তম সম্ভাব্য উত্তর এবং এটি ছিল না।
পাওলো বার্গান্টিনো

+1 এটি প্রথমে একটি বৈধ জাভাস্ক্রিপ্ট শনাক্তকারী এবং প্রায়শই জাভাস্ক্রিপ্ট ফ্রেমওয়ার্কগুলি একটি উপন্যাস দ্বিতীয় হিসাবে ব্যবহৃত হয়।
গম্বো

@ পাওলো: প্রায়শই, হ্যাঁ তবে ওপি এই বিষয়ে জানতে চেয়েছিল এমন কোনও ইঙ্গিত পাওয়া যায়নি। এর সরাসরি উত্তরও ভাল জিনিস thing :) এই বলে যে, আমি এখনও একমত হতে পারি এটি আরও ভাল উত্তর। আপনি কেবল একটি নির্দিষ্ট পয়েন্টে রেখেছিলেন এমন জোর দিয়ে আমার একমাত্র বাচ্চা ছিল।
নলডোরিন

2
বিটিডাব্লু, আমি এখানে আমার পোস্টে $ ফাংশনের পিছনে একটি সামান্য ইতিহাস সরবরাহ করেছি: স্ট্যাকওভারফ্লো
সমাধান

44

অন্য উত্তর থেকে :

একটু ইতিহাস

মনে রাখবেন, এ সম্পর্কে সহজাতভাবে বিশেষ কিছু নেই $। এটি অন্যের মতো একটি পরিবর্তনশীল নাম। আগের দিনগুলিতে লোকেরা ডকুমেন্ট.জেটলেমেন্টবিআইআইডি ব্যবহার করে কোড লিখতেন। জাভাস্ক্রিপ্ট যেহেতু কেস-সংবেদনশীল তাই লেখার সময় ভুল করা স্বাভাবিক ছিল document.getElementById। বলা উচিৎ? মূলধন 'b'এর 'by'? বলা উচিৎ? মূলধন 'i'এর Id?আপনি ড্রিফট পেতে। যেহেতু ফাংশনগুলি জাভাস্ক্রিপ্টে প্রথম শ্রেণির নাগরিক, আপনি সর্বদা এটি করতে পারেন:

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

প্রোটোটাইপ লাইব্রেরি এলে তারা তাদের ফাংশনটির নামকরণ করে, যা ডিওএম উপাদান হিসাবে পায় '$'। প্রায় সমস্ত জাভাস্ক্রিপ্ট লাইব্রেরি এই ধারণাটি অনুলিপি করেছে। প্রোটোটাইপ $$সিএসএস নির্বাচক ব্যবহার করে উপাদান নির্বাচন করতে একটি ফাংশনও প্রবর্তন করে।

jQuery এছাড়াও অভিযোজিত $ফাংশন কিন্তু এটি আপনার পছন্দসই উপাদানগুলি পেতে সমস্ত ধরণের 'নির্বাচকদের' গ্রহণ করতে বর্ধিত করে। এখন, আপনি যদি ইতিমধ্যে আপনার প্রকল্পে প্রোটোটাইপ ব্যবহার করছেন এবং jQuery অন্তর্ভুক্ত করতে চেয়েছিলেন, তবে আপনি '$'প্রোটোটাইপের বাস্তবায়ন বা jQuery এর বাস্তবায়ন হিসাবে উল্লেখ করতে পারেন problem এজন্য jQuery এর নো কনফ্লিক্টের বিকল্প রয়েছে যাতে আপনি আপনার প্রকল্পে jQuery অন্তর্ভুক্ত করতে পারেন যা প্রোটোটাইপ ব্যবহার করে এবং ধীরে ধীরে আপনার কোডটি স্থানান্তর করতে পারে। আমি মনে করি এটি জন এর পক্ষে একটি উজ্জ্বল পদক্ষেপ ছিল! :)


10
var $ = document.getElementById;ফায়ারফক্স বা গুগল ক্রোমে কাজ করে না। function $(id) { return document.getElementById(id); }পরিবর্তে আপনার ব্যবহার করা উচিত । আরও তথ্যের জন্য stackoverflow.com/questions/1007340 দেখুন ।
অনুদান ওয়াগনার

আমি তা জানতাম না, ধন্যবাদ গ্রান্ট। আমি নিশ্চিত করতে পারি যে এটি আই 6 এর পাশাপাশি ফায়ারফক্স 2 এও কাজ করত কারণ আমি প্রায়শই এই কৌশলটি ব্যবহার করি। আমি আমার প্রধান পোস্ট আপডেট করব।
সমাধান

42

এটি সম্ভবত jQuery কোড (আরও স্পষ্টভাবে jQuery লাইব্রেরি ব্যবহার করে জাভাস্ক্রিপ্ট)।

$প্রতিনিধিত্ব করে jQuery ফাংশন , এবং আসলে জন্য একটি সাঁটে লেখার ওরফে হয় jQuery। (বেশিরভাগ ভাষায় পৃথক, $প্রতীকটি সংরক্ষিত নয় এবং এটি একটি পরিবর্তনশীল নাম হিসাবে ব্যবহৃত হতে পারে)) এটি সাধারণত নির্বাচক হিসাবে ব্যবহৃত হয় (যেমন একটি ফাংশন যা ডিওমে পাওয়া উপাদানগুলির একটি সেট ফেরত দেয়)।


3
আপনার যুক্ত করা উচিত যে $ ঠিক এক্স এর মতো, এটি আপনাকে নির্ধারিত কিছু হতে পারে
hasen

এই কোডের টুকরাটির অর্থ কী: $ ইনপুট.প্রপ ('টাইপ') == 'রেডিও';
ওকেগিম্মনি

21

অন্য সমস্ত উত্তর যেমন বলে; এটি প্রায় কোনও কিছু হতে পারে তবে এটি সাধারণত "জ্যাকিউয়ারি"।

তবে, ES6 এ এটি একটি টেম্পলেট "আক্ষরিক" উদাহরণস্বরূপ স্ট্রিং ইন্টারপোলেশন অপারেটর ।

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 এর () ফাংশন। তবে, আপনি এমন পরিস্থিতিগুলির মুখোমুখি হতে পারেন যেখানে আপনি এটি অন্য জেএস লাইব্রেরির সাথে একযোগে ব্যবহার করতে চান যা $ও ব্যবহার করে, যার ফলে নামকরণ বিরোধ রয়েছে result জিকুয়েরিতে একটি পদ্ধতি রয়েছে কেবল এই কারণে 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 অবজেক্ট ধারণ করে এমন ভেরিয়েবলের নামের জন্য a f উপসর্গ করেন। এই অনুশীলন সম্পর্কে কোনও জাদু নেই - এটি কিছু লোককে বিভিন্ন ভেরিয়েবলের কী রয়েছে তা ট্র্যাক রাখতে সহায়তা করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.