প্রশ্নে কোডটি এখানে:
var $item = $(this).parent().parent().find('input');
ভেরিয়েবল নামের ডলারের সাইন এর উদ্দেশ্য কী, শুধু এটি বাদ দিলে নয় কেন?
document.querySelector
এবংdocument.querySelectorAll
প্রশ্নে কোডটি এখানে:
var $item = $(this).parent().parent().find('input');
ভেরিয়েবল নামের ডলারের সাইন এর উদ্দেশ্য কী, শুধু এটি বাদ দিলে নয় কেন?
document.querySelector
এবংdocument.querySelectorAll
উত্তর:
ভেরিয়েবলের একটি '$' অর্থ দোভাষীটির কাছে বিশেষ কিছুই নয়, অনেকটা আন্ডারস্কোরের মতো।
আমি যা দেখেছি, অনেকগুলি jQuery ব্যবহার করে (যা আপনার উদাহরণ কোডটি আমার মতো লাগে) ভেরিয়েবলের উপসর্গের ঝোঁক থাকে যার সাথে jQuery অবজেক্ট থাকে $ যাতে তারা সহজেই চিহ্নিত হয়ে যায় এবং বলে, পূর্ণসংখ্যার সাথে মিশে যায় না ।
$()
JQuery এ ডলার সাইন ফাংশন একটি লাইব্রেরির ফাংশন যা প্রায়শই ব্যবহৃত হয়, তাই একটি সংক্ষিপ্ত নামই কাম্য।
var $=function(){}
যেমন করায় তেমনি একই রকম var a=function(){}
।
jQuery(document).ready(function($){
... তারপর $টি ফাংশন বাস্তবায়নের অভ্যন্তরে ব্যবহৃত হয়।
$scope
$ এর ক্ষেত্রে সেই নামের একটি চরিত্র। ঠিক যেমন আপনি অপসৃত করা e
শেষে $scope
, এটি কাজ করবে না, তাই এর গ্রহণ $
এছাড়াও না করবে না হবে। আপনি যদি এমন কিছু দেখতে পান $( "a" ).addClass( "test" )
তবে ডলার চিহ্নটি যা হয় তার পুরো নাম।
আপনার উদাহরণে নামের একটি চরিত্র হওয়া ছাড়া $ এর কোনও বিশেষ তাত্পর্য নেই।
তবে ECMAScript 6 (ES6) এ $ কোনও টেম্পলেট লিটারাল উপস্থাপন করতে পারে
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
$ চিহ্নটি ভেরিয়েবল এবং ফাংশনগুলির জন্য সনাক্তকারী।
ডলার সাইনটি কী জন্য এটির একটি স্পষ্ট ব্যাখ্যা রয়েছে।
এখানে একটি বিকল্প ব্যাখ্যা: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
ডলার চিহ্নটি একটি সাধারণ চিঠি বা আন্ডারস্কোর ( _
) এর মতোই বিবেচিত হয় । দোভাষীর কাছে এর কোনও বিশেষ তাত্পর্য নেই।
অনেকগুলি অনুরূপ ভাষার মতো নয়, জাভাস্ক্রিপ্টে শনাক্তকারী (যেমন ক্রিয়ামূলক এবং পরিবর্তনশীল নাম) কেবল অক্ষর, সংখ্যা এবং আন্ডারস্কোরগুলিতেই থাকতে পারে তবে ডলার চিহ্নও ধারণ করতে পারে । এমনকি তাদের ডলারের চিহ্ন দিয়ে শুরু করার অনুমতি দেওয়া হয়, বা কেবল কোনও ডলারের চিহ্ন দ্বারা এবং অন্য কিছুই নয়।
সুতরাং, $
জাভাস্ক্রিপ্টে একটি বৈধ ফাংশন বা পরিবর্তনশীল নাম।
আপনি কেন শনাক্তকারীতে ডলারের সাইন চাইবেন?
সিনট্যাক্সটি শনাক্তকারীতে ডলার চিহ্নের কোনও নির্দিষ্ট ব্যবহার সত্যিই প্রয়োগ করে না, সুতরাং আপনি কীভাবে এটি ব্যবহার করতে চান তা আপনার বিষয়। অতীতে, প্রায়শই কেবল উত্পন্ন কোডে ডলারের সাইন দিয়ে সনাক্তকারী শুরু করার পরামর্শ দেওয়া হয়েছিল - এটি হস্তচালিত নয়, কোড জেনারেটর দ্বারা তৈরি কোড।
আপনার উদাহরণে, তবে এটি ক্ষেত্রে প্রদর্শিত হবে না। দেখে মনে হচ্ছে যে মজা করার জন্য কেউ শুরুতে ডলার সাইন রেখেছিল - সম্ভবত তারা এমন একজন পিএইচপি প্রোগ্রামার ছিলেন যিনি এটি অভ্যাসের বাইরে বা কিছু করে ফেলেছিলেন। পিএইচপি-তে, সমস্ত পরিবর্তনশীল নামের অবশ্যই তাদের সামনে ডলারের সাইন থাকতে হবে।
আজকাল একজন দোভাষীগুলিতে ডলারের চিহ্নের জন্য আরও একটি সাধারণ অর্থ রয়েছে: jQuery অবজেক্ট, যার নামটিতে কেবলমাত্র একক ডলারের চিহ্ন থাকে ( $
)। এটি প্রোটোটাইপের মতো পূর্ববর্তী জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক থেকে ধার করা একটি কনভেনশন, এবং যদি jQuery অন্যান্য অন্যান্য ফ্রেমওয়ার্কগুলির সাথে ব্যবহার করা হয় তবে একটি নাম সংঘর্ষ হবে কারণ তারা উভয়ই নামটি ব্যবহার করবে $
(jQuery এর বৈশ্বিক অবজেক্টের জন্য আলাদা নাম ব্যবহার করার জন্য কনফিগার করা যেতে পারে) । জাভাস্ক্রিপ্টে বিশেষ কিছু নেই যা jQueryটিকে তার ডাবল নাম হিসাবে একক ডলার চিহ্ন ব্যবহার করতে দেয়; উপরে উল্লিখিত হিসাবে, এটি কেবলমাত্র অন্য একটি বৈধ সনাক্তকারী নাম।
var $j = jQuery.noConflict();
এখন এইটির সাথে jQuery অবজেক্টটি ননফ্লিক্ট করতে পারেন $ j হল jQuery অবজেক্ট।
ডলার সাইনটি 2015-2016 এ 'টেমপ্লেট লিটারালস ' হিসাবে বাস্তবে স্ক্রিপ্টে ব্যবহৃত হয় । উদাহরণ:
var a = 5;
var b = 10;
console.log(`Sum is equal: ${a + b}`); // 'Sum is equlat: 15'
এখানে কাজের উদাহরণ: https://es6console.com/j3lg8xeo/ এই চিহ্নটি " ` " লক্ষ্য করুন , এটি সাধারণ উদ্ধৃতি নয়।
লাইব্রেরি jQuery এর সাথে কাজ করার সময় আপনিও দেখা করতে পারেন ।
ular নিয়মিত এক্সপ্রেশনগুলিতে সাইন মানে লাইন শেষ।
কোন কারণ নেই. সম্ভবত যিনি এটিকে কোড করেছিলেন তিনি পিএইচপি থেকে এসেছিলেন। এর একই প্রভাব রয়েছে যেমন আপনি এটি "_item" বা "আইটেম" বা "আইটেম $$" নামকরণ করেছেন।
প্রত্যয় হিসাবে ("আইটেম $" যেমন "আইটেমগুলি উচ্চারণ"), এটি একটি ডোম উপাদান হিসাবে একটি পর্যবেক্ষণযোগ্যকে হাঙ্গেরিয়ান নোটেশনের অনুরূপ "ফিনিশ নোটেশন" নামে একটি কনভেনশন হিসাবে চিহ্নিত করতে পারে।
এখানে একটি ভাল সংক্ষিপ্ত ভিডিও ব্যাখ্যা: https://www.youtube.com/watch?v=Acm-MD_6934
একমা ইন্টারন্যাশনাল আইডেন্টিফায়ার অনুসারে নামগুলি হ'ল টোকেন যা ইউনিকোড স্ট্যান্ডার্ডের অধ্যায় 5 এর "আইডেন্টিফায়ার" বিভাগে প্রদত্ত ব্যাকরণ অনুসারে ব্যাখ্যা করা হয় , কিছু ছোট পরিবর্তন রয়েছে। একটি সনাক্তকারী হ'ল একটি সনাক্তকারী নাম যা কোনও রিজার্ভ ওয়ার্ড নয় ( দেখুন 7.6.1 )। ইউনিকোড শনাক্তকারী ব্যাকরণ ইউনিকোড স্ট্যান্ডার্ড দ্বারা নির্দিষ্ট উভয় আদর্শিক এবং তথ্যমূলক চরিত্রের বিভাগের উপর ভিত্তি করে। ইউনিকোড স্ট্যান্ডার্ডের 3.0 সংস্করণে বর্ণিত বর্ণগুলিতে অক্ষরগুলি অবশ্যই ECMAScript প্রয়োগের সমস্ত অনুসারে সেই বিভাগগুলির হিসাবে বিবেচনা করা উচিত th এই স্ট্যান্ডার্ডটি নির্দিষ্ট অক্ষর সংযোজন নির্দিষ্ট করে:
ডলার সাইন ($) এবং আন্ডারস্কোর (_) কোনও আইডেন্টিফায়ারনেমে যে কোনও জায়গায় অনুমোদিত ।
আরও পাঠ্য পাওয়া যাবে: http://www.ecma-international.org/ecma-262/5.1/#sec-7.6
ইকমা ইন্টারন্যাশনাল একটি শিল্প সংস্থা যা ১৯61১ সালে প্রতিষ্ঠিত হয়েছিল এবং তথ্য ও যোগাযোগ প্রযুক্তি (আইসিটি) এবং কনজিউমার ইলেক্ট্রনিক্স (সিই) এর মানিকরণের জন্য উত্সর্গীকৃত।
JQuery ব্যবহার করার সময় $
, পরিবর্তনশীল নামের একটি উপসর্গ হিসাবে প্রতীক ব্যবহার নিছক কনভেনশন দ্বারা; এটি সম্পূর্ণরূপে alচ্ছিক এবং কেবলমাত্র উদাহরণ হিসাবে যেমন ভেরিয়েবল একটি jQuery অবজেক্ট ধারণ করে তা পরিবেশন করে।
এর অর্থ হ'ল যখন অন্য কোনও jQuery ফাংশনটি অবজেক্টটিতে কল করা দরকার তখন আপনার $()
আবার এটিকে মোড়ানোর প্রয়োজন হবে না । উদাহরণস্বরূপ, এগুলি তুলনা করুন:
// 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
সঙ্গে $
উপসর্গ ভেরিয়েবল ইতিমধ্যে jQuery এর বস্তু অধিষ্ঠিত অবিলম্বে স্বীকৃত হয় এবং কোড আরো পাঠযোগ্য, এবং ঘটিয়েছে ডবল / একাধিক মোড়ানো $()
।