var a = '';
var b = (a) ? false : true; // fixed!
console.log(b); // => true
var b
সেট করা হবে true
।
এটি কি নির্ভরযোগ্য আচরণ যা নির্ভর করা যায়?
উপরোক্ত আলোচনা বললেন, হ্যাঁ , যে একটি খালি স্ট্রিং এর সংজ্ঞায়িত আচরণ একটি শর্তাধীন মধ্যে (একটি if
অভিব্যক্তি, ||
, &&
, ? :
, ...)। ( মানকটি বলে যে অভ্যন্তরীণ টুবুলিয়ান অপারেশন প্রয়োগ করতে হবে))
খালি স্ট্রিংটি তুলনা করে ( সত্য, সমতা এবং জাভাস্ক্রিপ্ট দেখুন ) ব্যবহার করা হলেও মূল্যায়ন আলাদা হয় , যদিও ফলাফল বেশিরভাগ ক্ষেত্রে একই থাকে :
// conditional (note: evaluation to false prints false here!)
console.log('' ? true : false); // zero length => false
// comparisons
console.log('' == true); // +0 === 1 => false
console.log('' == false); // +0 === +0 => true
console.log('' === true); // different types => false
console.log('' === false); // different types => false
ব্যাখ্যা: মূলত, যখন অপারেশনগুলির==
বিভিন্ন ধরণের থাকে, তখন জাভাস্ক্রিপ্ট তাদের মান অনুসারে, তাদের নাম্বারে সংখ্যায় রূপান্তরিত করার জন্য কঠোর চেষ্টা করে ( স্ট্যান্ডার্ড কলটি টনম্বার এবং টোপ্রিমিটিভ ব্যবহার করে ) এবং তারপরে এটি অভ্যন্তরীণভাবে প্রযোজ্য । তবে আপনি যখন সরাসরি ব্যবহার করেন , প্রকারগুলি রূপান্তরিত হয় না, সুতরাং একটি স্ট্রিংকে বুলিয়ানের সাথে তুলনা করা সর্বদা ।===
===
false
মোটামুটিভাবে বলতে গেলে, একটি সংজ্ঞায়িত, নন-নাল, নন-শূন্য, খালি-খালি, নন-ভ্যালু মানের জন্য জাভাস্ক্রিপ্ট কন্ডিশনাল ( টোবুলিয়ান ) পরীক্ষা (একটি খালি স্ট্রিংটি ... খালি, সংখ্যা -0 বা +0 হয় ... শূন্য, এনএএন কোনও সংজ্ঞায়িত সংখ্যা নয়, তবে একটি খালি অবজেক্ট দৃশ্যত সত্যই শূন্য নয়), বা যেমনটি আমি ভাবতে চাই, একটি (সত্য) জিনিসের জন্য শর্তসাপেক্ষ পরীক্ষা , যখন আপাত, সাবধানে রূপান্তরিত মানগুলির ( টোপ্রিমিটিভ , টোবার্বার ) তুলনা করা হয় তার operands, এবং জন্য দেখায় সঠিক অভিন্নতা ।==
===
if (X) {} // is X a (true) thing?
if (X == Y) {} // are the values of X and Y same-ish?
if (X === Y) {} // are X and Y exactly the same?
সেখানে আরও উদাহরণ আছে সত্য, সমতা এবং JavaScript যেখানে এই পার্থক্য সত্যিই গুরুত্বপূর্ণ, যেমন '0'
হয় true
একটি শর্তাধীন মধ্যে (নন-জিরো দৈর্ঘ্য, বা, এটা একটি জিনিস ), কিন্তু false
একটি ==
তুলনা ( মান শূন্য হয়)। '1'
আবার, true
উভয় ক্ষেত্রে (এটি একটি জিনিস এবং একটি শূন্য-মান আছে)।
console.log('' ? true : false); // zero length => false
console.log('' == true); // +0 === 1 => false
console.log('0' ? true : false); // non-zero length => true
console.log('0' == true); // +0 === 1 => false
console.log('1' ? true : false); // non-zero length => true
console.log('1' == true); // 1 === 1 => true
false
: এখান jsfiddle.net/8CKbd