প্রথমত, ঘটনাগুলি:
if (booleanValue)
if
কোনও শূন্য নম্বরের সংখ্যা, কোনও খালি খালি স্ট্রিং মান, কোনও অবজেক্ট বা অ্যারে রেফারেন্স ইত্যাদি booleanValue
অন্তর্ভুক্তের সত্যতার মানটির জন্য বিবৃতিটি সন্তুষ্ট করবে true
...
অন্য দিকে:
if (booleanValue === true)
এটি ঠিক সমান if
হলে শর্তটি পূরণ করবে । অন্য কোনও সত্য মান এটি সন্তুষ্ট করবে না।booleanValue
true
অন্যদিকে আপনি যদি এটি করেন:
if (someVar == true)
তারপরে, জাভাস্ক্রিপ্ট যা করবে তা হ'ল ধরণীর প্রকারের true
সাথে মেলে someVar
এবং পরে দুটি ভেরিয়েবলের তুলনা করতে। এমন অনেকগুলি পরিস্থিতি রয়েছে যেখানে সম্ভবত কারও উদ্দেশ্য নেই is এর কারণ হিসাবে, বেশিরভাগ ক্ষেত্রে আপনি এড়াতে চান ==
কারণ জাভাস্ক্রিপ্ট কীভাবে দুটি জিনিসকে একই ধরণের করতে বাধ্য করবে সে সম্পর্কে নিয়মগুলির একটি দীর্ঘ দীর্ঘ সেট রয়েছে এবং আপনি যদি এই সমস্ত বিধিগুলি বুঝতে না পারেন এবং জেএস ইন্টারপ্রিটার যখন করতে পারেন তখন সমস্ত কিছু অনুমান করতে পারবেন না দুটি ভিন্ন ধরণের দেওয়া (যা বেশিরভাগ জেএস বিকাশকারীরা পারবেন না), আপনি সম্ভবত ==
পুরোপুরি এড়াতে চান ।
এটি কতটা বিভ্রান্তিকর হতে পারে তার উদাহরণ হিসাবে:
var x;
x = 0;
console.log(x == true); // false, as expected
console.log(x == false); // true as expected
x = 1;
console.log(x == true); // true, as expected
console.log(x == false); // false as expected
x = 2;
console.log(x == true); // false, ??
console.log(x == false); // false
মানটির জন্য 2
, আপনি ভাবেন যে 2
এটি সত্যবাদী মান তাই এটি তুলনামূলকভাবে তুলনামূলকভাবে তুলনা করবে true
তবে জোর করে কীভাবে কাজ করে তা নয় isn't এটি ডান হাতের মানকে রূপান্তর করছে বাম হাতের মানের ধরণের সাথে মেলে যাতে এটির true
সংখ্যায় রূপান্তর হয় 1
তাই এটি তুলনা করছে 2 == 1
যা সম্ভবত আপনি সম্ভবত যা ইচ্ছা করেছেন তা নয়।
সুতরাং, ক্রেতা সাবধান। ==
আপনি যে ধরণের তুলনা করছেন সেগুলি স্পষ্টভাবে না জানলে এবং সম্ভাব্য সমস্ত ধরণের জবরদস্তী অ্যালগরিদম কীভাবে কাজ করে তা আপনি যদি না জানেন তবে প্রায় সব ক্ষেত্রেই এড়ানো ভাল ।
সুতরাং, এটি সত্যিকারের জন্য প্রত্যাশিত মানগুলির উপর নির্ভর করে booleanValue
এবং আপনি কোডটি কীভাবে কাজ করতে চান তা নির্ভর করে । আপনি যদি আগে থেকেই জানেন যে এটির কেবল কোনও মান true
বা false
মূল্য থাকবে তবে তা স্পষ্ট করে এর সাথে তুলনা করুন
if (booleanValue === true)
এটি কেবল অতিরিক্ত কোড এবং অপ্রয়োজনীয় এবং
if (booleanValue)
আরও কমপ্যাক্ট এবং তর্কযোগ্যভাবে ক্লিনার / আরও ভাল।
যদি অন্যদিকে, আপনি কী জানেন কী booleanValue
না এবং আপনি এটি পরীক্ষা করতে চান যদি এটি true
অন্য কোনও স্বয়ংক্রিয় ধরণের রূপান্তর অনুমোদিত না হয়ে থাকে তবে তা পরীক্ষা করতে চান , তবে
if (booleanValue === true)
শুধুমাত্র একটি ভাল ধারণা নয়, তবে প্রয়োজনীয়।
উদাহরণস্বরূপ, আপনি .on()
jQuery এর প্রয়োগের দিকে তাকান , এটির একটি alচ্ছিক রিটার্ন মান রয়েছে। যদি কলব্যাকটি ফিরে আসে false
তবে jQuery স্বয়ংক্রিয়ভাবে ইভেন্টটির প্রচার বন্ধ করবে। এই নির্দিষ্ট ক্ষেত্রে, যেহেতু jQuery এর একমাত্র স্টপ প্রসারণ যদি চায় false
এল, তারা ফেরত মান সুনির্দিষ্টভাবে জন্য চেক === false
কারণ তারা করতে চান না undefined
বা 0
বা ""
বা অন্য কিছু এছাড়াও তুলনা সন্তুষ্ট স্বয়ংক্রিয়ভাবে হবে টাইপ-ধর্মান্তরিত মিথ্যাতে।
উদাহরণস্বরূপ, এখানে jQuery ইভেন্ট হ্যান্ডলিং কলব্যাক কোড:
ret = ( specialHandle || handleObj.handler ).apply( matched.elem, args );
if ( ret !== undefined ) {
event.result = ret;
if ( ret === false ) {
event.preventDefault();
event.stopPropagation();
}
}
আপনি দেখতে পারেন যে jQuery স্পষ্টভাবে খুঁজছেন ret === false
।
তবে, jQuery কোডে আরও অনেক জায়গা রয়েছে যেখানে কোডের ইচ্ছা অনুসারে একটি সহজ চেক উপযুক্ত। উদাহরণ স্বরূপ:
// The DOM ready check for Internet Explorer
function doScrollCheck() {
if ( jQuery.isReady ) {
return;
}
...