আমি নিম্নলিখিত কোড জুড়ে এসেছি:
function test(data) {
if (data != null && data !== undefined) {
// some code here
}
}
আমি জাভাস্ক্রিপ্টে কিছুটা নতুন, কিন্তু অন্যান্য প্রশ্নগুলি থেকে আমি এখানে পড়ছি, আমি এই ধারণাটির আওতায় আছি যে এই কোডটি খুব বেশি বোঝায় না।
আপনি ব্যতীত অন্য যে কোনও প্রসঙ্গে একটি অনির্ধারিত পরিবর্তনশীল অ্যাক্সেস করলে আপনি একটি ত্রুটি পাবেনtypeof
।
আপডেট: উপরের উত্তরটির (এর উদ্ধৃতি) বিভ্রান্তিকর হতে পারে। এটা বলা উচিত «অঘোষিত পরিবর্তনশীল» , পরিবর্তে «অনির্ধারিত পরিবর্তনশীল» ।
যেমন আমি জানতে পেরেছি , রায়ান ma , ম্যারিক্স এবং নওহ্নহোফের জবাবগুলিতে , এমনকি যখন কোনও ক্রিয়াকলাপে কোনও যুক্তি সরবরাহ করা হয় না, তত্ক্ষণাত যুক্তির জন্য তার পরিবর্তনশীল সর্বদা ঘোষণা করা হয়। এই সত্যটি নীচের তালিকার প্রথম আইটেমটিকেও ভুল প্রমাণ করে।
আমার উপলব্ধি থেকে, নিম্নলিখিত পরিস্থিতিতে অভিজ্ঞতা হতে পারে:
কোনও তর্ক ছাড়াই ফাংশনটি ডাকা হয়েছিল, এভাবেdata
একটি সংজ্ঞায়িত পরিবর্তনশীল তৈরি করা এবং ত্রুটি বাড়ানোdata != null
।ফাংশনটি বিশেষত
null
(বাundefined
) এর সাথে যুক্তি হিসাবে ডাকা হত , যার ক্ষেত্রেdata != null
ইতিমধ্যে অভ্যন্তরীণ কোড রক্ষা করে,&& data !== undefined
অকেজো করে।ফাংশন একটি অ নাল যুক্তি, যা ক্ষেত্রে এটি জাভাস্ক্রিপ্টে গার্বেজ উভয় পাস হবে সঙ্গে বলা হয়
data != null
এবংdata !== undefined
।
প্রশ্ন: আমার বোঝাপড়াটি কি সঠিক?
ফায়ারফক্সের কনসোলে আমি নিম্নলিখিতটি চেষ্টা করেছি:
--
[15:31:31.057] false != null
[15:31:31.061] true
--
[15:31:37.985] false !== undefined
[15:31:37.989] true
--
[15:32:59.934] null != null
[15:32:59.937] false
--
[15:33:05.221] undefined != null
[15:33:05.225] false
--
[15:35:12.231] "" != null
[15:35:12.235] true
--
[15:35:19.214] "" !== undefined
[15:35:19.218] true
আমি কোনও কেস বের করতে পারি না যেখানে এর data !== undefined
পরে data != null
কোনও ব্যবহার হতে পারে।
if(data)
অর্থ হ'ল তিনি উত্তীর্ণ হতে পারবেন না false
বা 0
মান হিসাবেও পারবেন না data
।
if(typeof someUndefVar == whatever) -- works
এবং if(someUnderVar) -- error
।
data !== null && data !== undefined
, যা সমান data != null
সমান data != undefined
। পূর্বের ফর্মটি শর্তাবলী সম্পর্কে আরও সুস্পষ্টরূপে অনুগ্রহ করা যায়, যদিও উভয়ই উপেক্ষা করা সহজ হবে null
এবং undefined
পরবর্তী দুটি শর্তের সাথে পরীক্ষা করা হচ্ছে।
undefined
হ'ল আইএমও একটি কোড গন্ধ। এটি কোনও সুরক্ষিত কীওয়ার্ড নয় null
, এটি একটি পরিবর্তনশীল যা অপরিজ্ঞাত হওয়ার পরে ঘটে। এটি সম্পূর্ণরূপে বৈধ এবং আপনার কোডটি ভঙ্গ করতে চলেছে:undefined = 1
if (data)
।data
ভেরিয়েবলটি সত্য হিসাবে মূল্যায়ন করে কিনা তা যাচাই করার জন্য এটি স্মরণীয় জাভাস্ক্রিপ্টের উপায় ।undefined
,,null
মিথ্যা, 0, খালি স্ট্রিং, খালি অ্যারে এবং (?) অবজেক্টের কোনও বৈশিষ্ট্য মিথ্যা হিসাবে মূল্যায়ন করে না, বাকীটি সত্য।