typeof
উত্তরের আধিক্যের বিকল্প ;
গ্লোবাল স্কোয়ারে একটি var varname = value;
বিবৃতি দিয়ে গ্লোবাল ভেরিয়েবলগুলি ঘোষণা করা হয়
উইন্ডো অবজেক্টের বৈশিষ্ট্য হিসাবে অ্যাক্সেস করা যায়।
যেমন, hasOwnProperty()
পদ্ধতি, যা
একটি বুলিয়ান প্রদান করে যা নির্দেশ করে যে বস্তুর নিজস্ব সম্পত্তি হিসাবে এটি নির্দিষ্ট সম্পত্তি রয়েছে (এটি উত্তরাধিকার সূত্রে বিপরীতে)
কিনা তা নির্ধারণ করতে ব্যবহার করা যেতে পারে
একটি var
এর "VARNAME" বিশ্বব্যাপী ঘোষণা করা হয়েছে অর্থাত একটি সম্পত্তি window
।
// Globally established, therefore, properties of window
var foo = "whatever", // string
bar = false, // bool
baz; // undefined
// window.qux does not exist
console.log( [
window.hasOwnProperty( "foo" ), // true
window.hasOwnProperty( "bar" ), // true
window.hasOwnProperty( "baz" ), // true
window.hasOwnProperty( "qux" ) // false
] );
কি দুর্দান্ত hasOwnProperty()
বিষয়টি এটির কল করার ক্ষেত্রে আমরা এমন একটি পরিবর্তনশীল ব্যবহার করি না যা এখনও অঘোষিত হতে পারে - প্রথমত অর্ধেক সমস্যাটি অবশ্যই।
না হলেও সবসময় নিখুঁত বা আদর্শ সমাধান, কিছু পরিস্থিতিতে, এটা ঠিক কাজ!
মন্তব্য
var
উপরেরগুলি ভেরিয়েবল সংজ্ঞায়িত করতে ব্যবহার করার সময় সত্য , let
যার বিপরীতে :
একটি ব্লক স্কোপ স্থানীয় ভেরিয়েবল ঘোষণা করে optionচ্ছিকভাবে এটিকে একটি মান দিয়ে শুরু করে।
এর বিপরীতে var
, যা বিশ্বব্যাপী একটি পরিবর্তনশীল বা স্থানীয়ভাবে কোনও ব্লক স্কোপ নির্বিশেষে একটি সম্পূর্ণ ফাংশনে সংজ্ঞায়িত করে।
প্রোগ্রাম এবং ফাংশনগুলির শীর্ষ স্তরে let
, বৈসাদৃশ্যপূর্ণ var
, বৈশ্বিক বস্তুতে কোনও সম্পত্তি তৈরি করে না।
সম্পূর্ণতার জন্য: const
ধ্রুবকগুলি সংজ্ঞা অনুসারে আসলে পরিবর্তনশীল নয় (যদিও তাদের সামগ্রীগুলি হতে পারে); আরও প্রাসঙ্গিকভাবে:
গ্লোবাল ধ্রুবকগুলি var
ভেরিয়েবলের বিপরীতে উইন্ডো অবজেক্টের বৈশিষ্ট্য হয়ে ওঠে না । একটি ধ্রুবক জন্য একটি প্রাথমিককরণ প্রয়োজন; অর্থাৎ, আপনাকে অবশ্যই এটির মানটি একই বিবৃতিতে নির্দিষ্ট করতে হবে যেখানে এটি ঘোষিত হয়েছে।
পুনরায় নিয়োগের মাধ্যমে ধ্রুবকের মান পরিবর্তন করতে পারে না এবং এটি পুনরায় ঘোষিত হতে পারে না।
কনস্টের ঘোষণাটি একটি মানকে কেবল পঠনযোগ্য রেফারেন্স তৈরি করে। এর অর্থ এই নয় যে এটির মানটি অপরিবর্তনীয়, কেবলমাত্র ভেরিয়েবল আইডেন্টিফায়ারকে পুনরায় নিয়োগ দেওয়া যায় না।
যেহেতু let
ভেরিয়েবল বা const
ধ্রুবকগুলি কখনই hasOwnProperty()
পদ্ধতিতে উত্তরাধিকার সূত্রে প্রাপ্ত কোনও বস্তুর বৈশিষ্ট্য নয়, এটি তাদের অস্তিত্বের জন্য যাচাই করতে ব্যবহার করা যায় না।
এর প্রাপ্যতা এবং ব্যবহার সম্পর্কে hasOwnProperty()
:
প্রতিটি বস্তু থেকে অবতীর্ণ অবজেক্ট উত্তরাধিকারী hasOwnProperty()
পদ্ধতি। [...] in
অপারেটরের বিপরীতে , এই পদ্ধতিটি অবজেক্টের প্রোটোটাইপ চেইনটি পরীক্ষা করে না।
foo
ঘোষণা করতে চান কিনা তা জানতে চাইলেtypeof foo === 'undefined'
অথবাtypeof foo === typeof undefined