javascript - tutorial - w3schools
জাভাস্ক্রিপ্ট সব মিথ্যা মূল্য (2)
জাভাস্ক্রিপ্টের মানগুলি কি 'মিথ্যা' , এর অর্থ হল তারা if(value)
, value ?
মত মিথ্যা হিসাবে মূল্যায়ন করে value ?
এবং !value
ইতিমধ্যে স্ট্যাক ওভারফ্লোে মিথ্যা মানগুলির উদ্দেশ্য নিয়ে কিছু আলোচনা আছে, তবে কোনও মিথ্যা সম্পূর্ণ উত্তরগুলি কী মিথ্যা বর্ণনাগুলি রয়েছে তা তালিকাভুক্ত করে।
আমি এমডএন জাভাস্ক্রিপ্ট রেফারেন্সে কোনও সম্পূর্ণ তালিকা খুঁজে পাইনি এবং জাভাস্ক্রিপ্টে মিথ্যা মূল্যবোধের একটি সম্পূর্ণ, আধিকারিক তালিকা সন্ধান করার জন্য শীর্ষ ফলাফলগুলি হ'ল বিস্মিত ছিল, এর মধ্যে কয়েকটি সুস্পষ্ট ভুল ছিল (উদাহরণস্বরূপ, NaN
), এবং যার মধ্যে স্ট্যাক ওভারফ্লো এর মতো কোনও ফর্ম্যাট ছিল না যেখানে মন্তব্যগুলি বা বিকল্প উত্তরগুলি quirks, বিস্ময়, ভুল, ভুল বা caveats নির্দেশ করতে যোগ করা যেতে পারে। সুতরাং, এটি এক করতে ইন্দ্রিয় তোলে।
জাভাস্ক্রিপ্ট মধ্যে Falsey মান
-
false
-
0
এবং সাংখ্যিক শূন্যের অন্যান্য ফর্ম যেমন-0
,0.0
এবং0x0
( হেক্স ফর্মের জন্য RBT থেকে ক্রেডিট ) -
""
,''
``
- দৈর্ঘ্যের স্ট্রিং 0 -
null
-
undefined
-
NaN
-
document.all
(শুধুমাত্র এইচটিএমএল ব্রাউজারে)- এটি একটি অদ্ভুত এক।
document.all
একটি মিথ্যা বস্তু,undefined
হিসাবে টাইপ সঙ্গে। এটি IE11 এর আগে IE তে একটি মাইক্রোসফ্ট-প্রোপার্টিটিরি ফাংশন ছিল এবং এইচটিএমএল স্পেককে "জাভাস্ক্রিপ্ট স্পেসিফিকেশন এর ইচ্ছাকৃত লঙ্ঘন" হিসাবে যোগ করা হয়েছিল যাতে IE এর জন্য লিখিত সাইটগুলি অ্যাক্সেস করার চেষ্টা করতে বিরত না হয়, উদাহরণস্বরূপ,document.all.something
। এটি মিথ্যাবাদী কারণif (document.all)
IE সনাক্ত করার জন্য জনপ্রিয় উপায় হিসাবে ব্যবহৃত হয়, শর্তাধীন মন্তব্যের আগে। দেখুন কেন নথি? সব মিথ্যা? বিস্তারিত জানার জন্য
- এটি একটি অদ্ভুত এক।
"ফ্যাল্সি" এর অর্থ কেবলমাত্র জাভাস্ক্রিপ্টের অভ্যন্তরীণ ToBoolean
ফাংশনটি false
। ToBoolean
underlies !value
, value ? ... : ...;
value ? ... : ...;
এবং if (value)
। এখানে তার সরকারী স্পেসিফিকেশন (2018 কর্মরত খসড়া) ( 1997 সালে প্রথম ইসিএমএসস্ক্রিপ্ট স্পেসিফিকেশন থেকে কেবলমাত্র পরিবর্তনটি ES6 এর প্রতীকগুলির যোগফল যা সর্বদা সত্যবাদী):
==
(আলগা সমতা) সঙ্গে তুলনা
Falsy Values এর সাথে আলগা তুলনা ==
, যা ToNumber()
ব্যবহার করে এবং অন্তর্নিহিত পার্থক্যের কারণে কিছু বিভ্রান্তির কারণ হতে পারে। তারা কার্যকরভাবে তিনটি গ্রুপ গঠন করে:
-
false, 0, -0, "", ''
সবাই একে অপরের সাথে মিলিত==
- যেমন
false == ""
,'' == 0
এবং তাই4/2 - 2 == 'some string'.slice(11);
- যেমন
-
==
সঙ্গেnull, undefined
ম্যাচ- যেমন
null == undefined
কিন্তুundefined != false
- এটি উল্লেখযোগ্য যে
typeof null
রিটার্ন'object'
typeof null
সময়,null
কোনও বস্তু নয়, এটি দীর্ঘস্থায়ী বাগ / কুইক যা সামঞ্জস্য বজায় রাখার জন্য নির্দিষ্ট করা হয়নি। এটি একটি সত্য বস্তু নয়, এবং বস্তুগুলি সত্যই ("ইচ্ছাকৃত লঙ্ঘন"document.all
ছাড়াও। জাভাস্ক্রিপ্ট HTML এ বাস্তবায়িত হলে)
- যেমন
-
NaN
কিছু মিলছে না,==
অথবা===
, এমনকি নিজের সাথেও নয়- যেমন
NaN != NaN
,NaN !== NaN
,NaN != false
,NaN != null
- যেমন
"কঠোর সমতা" ( ===
) সহ, এমন কোন গোষ্ঠী নেই। শুধু false
===
false
।
এটি অনেকগুলি ডেভেলপার এবং অনেক শৈলী নির্দেশিকা (যেমন standardjs ) ===
পছন্দ করে এবং প্রায় ===
ব্যবহার করে না।
প্রকৃত সত্য যে == false
"সত্য" মানে কেবল জাভাস্ক্রিপ্টের অভ্যন্তরীণ ToBoolean
ফাংশনটি true
ফেরত দেয়। সচেতন হওয়া জাভাস্ক্রিপ্টের একটি কৌতুক (এবং ===
ওভার ==
পছন্দ করার আরেকটি ভাল কারণ): সত্যের মান ( ToBoolean
ফেরত) এর পক্ষে এটি সম্ভব, তবে == false
।
আপনি if (value && value == false) alert('Huh?')
ভাবতে if (value && value == false) alert('Huh?')
একটি লজিক্যাল অসম্ভবতা যা ঘটতে পারে না, তবে এটি হবে:
-
"0"
এবং'0'
- তারা অ-খালি স্ট্রিংগুলি, যা সত্য, কিন্তু জাভাস্ক্রিপ্টগুলির==
সমান সমীকরণের সাথে মিল নম্বরগুলি (যেমন42 == "42"
)। যেহেতু0 == false
,"0" == 0
,"0" == false
। -
new Number(0)
এবংnew Boolean(false)
- তারা বস্তু, যা সত্যবাদী, কিন্তু==
তাদের মানগুলি দেখায়, যা== false
। -
0 .toExponential();
0
সমান একটি সংখ্যাসূচক মান সঙ্গে একটি বস্তু - যেকোনো অনুরূপ নির্মাণ যা আপনাকে সত্যিকারের একটি টাইপের মধ্যে আবৃত মিথ্যা-সমান মূল্য দেয়
-
[]
,[[]]
এবং[0]
( dorey.github.io/JavaScript-Equality-Table cloudfeet dorey.github.io/JavaScript-Equality-Table জন্য ধন্যবাদ cloudfeet )
কিছু আরো সত্যিকারের মান
এই মাত্র কয়েকটি মান যা কিছু লোক মিথ্যা বলে আশা করতে পারে, কিন্তু আসলে সত্যবাদী।
-
-1
এবং সমস্ত অ শূন্য নেতিবাচক সংখ্যা -
' '
," "
,"false"
,'null'
... সমস্ত অ-খালি স্ট্রিং, যার মধ্যে কেবলমাত্র সাদা জায়গাগুলি রয়েছে typeof
থেকে যেকোন কিছু, যা সবসময় একটি অ-খালি স্ট্রিং প্রদান করে, উদাহরণস্বরূপ:-
typeof null
( একটি দীর্ঘস্থায়ী বাগ / quirk কারণে একটি স্ট্রিং'object'
প্রদান করে ) -
typeof undefined
(একটি স্ট্রিং'undefined'
)
-
কোনও বস্তু (ব্রাউজারে যে "ইচ্ছাকৃত লঙ্ঘন"
document.all
ছাড়া। সমস্ত মনে রাখবেন যেtypeof
অন্যথায় প্রস্তাব করার মতো কোনও বস্তু নয়)। সহ:-
{}
-
[]
-
function(){}
অথবা() => {}
(ফাংশন সহ, ফাঁকা ফাংশন সহ) -
Error
এবংError
কোনো উদাহরণ - কোন নিয়মিত অভিব্যক্তি
-
new
কিছু তৈরি করা হয়েছে (new Number(0)
এবংnew Boolean(false)
)
-
- কোন চিহ্ন
true
, 1
, "1"
এবং [1]
==
সাথে একে অপরের সাথে তুলনা করার সময় true
প্রত্যাবর্তন করুন।
@ ব্যবহারকারী 568458 এর মিথ্যা তথ্যগুলির তালিকায় যোগ করার জন্য:
পূর্ণসংখ্যা সংখ্যা 0 ছাড়াও, দশমিক সংখ্যা 0.0, 0.00 অথবা এমন কোনও শূন্য সংখ্যাও মিথ্যা তথ্য।
var myNum = 0.0; if(myNum){ console.log('I am a truthy value'); } else { console.log('I am a falsy value'); }
উপরে কোড স্নিপেট প্রিন্ট
I am a falsy value
একইভাবে 0 নম্বরের হেক্স উপস্থাপনাটি মিথ্যা কোডের স্নিপেট হিসাবে দেখানো একটি মিথ্যাও মূল্য:
var myNum = 0x0; //hex representation of 0 if(myNum){ console.log('I am a truthy value'); } else { console.log('I am a falsy value'); }
উপরে কোড স্নিপেট আবার প্রিন্ট
I am a falsy value
।