অপারেটর প্রকার
typeof অপারেটর একটি জাভাস্ক্রিপ্ট ভেরিয়েবলের ডেটা টাইপ প্রদান করে।
প্রাথমিক তথ্য প্রকার
জাভাস্ক্রিপ্টে, একটি প্রাথমিক মান হল একটি একক মান যার কোনো বৈশিষ্ট্য বা পদ্ধতি নেই।
জাভাস্ক্রিপ্টে 7টি প্রাথমিক ডেটা প্রকার রয়েছে:
string
number
boolean
bigint
symbol
null
undefined
typeof অপারেটর একটি পরিবর্তনশীল বা এক্সপ্রেশনের ধরন প্রদান করে।
উদাহরণ
typeof "John" // একটি স্ট্রিং প্রদান করে typeof ("John"+"Doe") // একটি স্ট্রিং প্রদান করে typeof 3.14 // একটি সংখ্যা প্রদান করে typeof 33 // একটি সংখ্যা প্রদান করে typeof (33 + 66) // নম্বর প্রদান করে typeof true // বুলিয়ান রিটার্ন করে typeof false // বুলিয়ান রিটার্ন করে typeof 1234n // বিগইন্ট ফেরত দেয় typeof Symbol() // চিহ্ন প্রদান করে typeof x // অনির্ধারিত রিটার্ন typeof null // একটি বস্তু প্রদান করে
দ্রষ্টব্য:
জাভাস্ক্রিপ্টে, নাল একটি ডিফল্ট মান। যাইহোক, typeof অবজেক্ট রিটার্ন করে এটি জাভাস্ক্রিপ্টে একটি পরিচিত বাগ এবং এর ঐতিহাসিক কারণ রয়েছে।
জটিল তথ্য প্রকার
একটি জটিল ডেটা টাইপ একাধিক মান এবং/অথবা বিভিন্ন ডেটা টাইপ একসাথে সংরক্ষণ করতে পারে।
জাভাস্ক্রিপ্টের একটি জটিল ডেটা টাইপ আছে:
object
অন্যান্য সমস্ত জটিল প্রকার, যেমন অ্যারে, ফাংশন, সেট এবং গ্রাফ, শুধুমাত্র বিভিন্ন ধরনের বস্তু।
Typeof অপারেটর শুধুমাত্র দুটি ধরনের প্রদান করে:
object
পণ্যের জন্য
function
ফাংশন জন্য
উদাহরণ
typeof {name:'John'} // একটি বস্তু প্রদান করে typeof [1,2,3,4] // বস্তু ফেরত দেয় typeof new Map() // একটি বস্তু প্রদান করে typeof new Set() // একটি বস্তু প্রদান করে typeof function (){} // ফাংশন প্রদান করে
দ্রষ্টব্য:
প্রকার অপারেটর সমস্ত ধরণের অবজেক্টের জন্য অবজেক্ট প্রদান করে: আইটেম, অ্যারে, তারিখ, সেট, গ্রাফ। জাভাস্ক্রিপ্ট অবজেক্ট একটি অ্যারে বা তারিখ কিনা তা নির্ধারণ করতে typeof ব্যবহার করা যাবে না।
কিভাবে একটি অ্যারে বৈধতা
একটি ভেরিয়েবল একটি অ্যারে হলে কিভাবে জানতে?
ECMAScript 5 (2009) এর জন্য একটি নতুন পদ্ধতি সংজ্ঞায়িত করেছে: Array.isArray():
// একটি অ্যারে তৈরি করুন const fruits = ["আপেল", "কলা", "কমলা"]; Array.isArray(ফল);
অপারেটরের উদাহরণ
কোনো বস্তু নির্দিষ্ট অবজেক্ট টাইপের একটি উদাহরণ হলে ইন্সট্যান্সফ অপারেটরটি সত্য ফেরত দেয়:
// একটি তারিখ তৈরি করুন const time = নতুন তারিখ(); (তারিখের সময় উদাহরণ); // একটি অ্যারে তৈরি করুন const fruits = ["আপেল", "কলা", "কমলা"]; (অ্যারের ফল উদাহরণ); // একটি মানচিত্র তৈরি করুন const fruits = নতুন মানচিত্র([ ["আপেল", 500], ["কলা", 300], ["কমলা", 200] ]); (মানচিত্রের ফলের উদাহরণ); // একটি সেট তৈরি করুন const fruits = নতুন সেট(["আপেল", "কলা", "কমলা"]); (ফলের উদাহরণ সেট);
অনির্ধারিত ভেরিয়েবল
একটি অনির্ধারিত চলকের প্রকার অনির্ধারিত।
typeof car;
কোন মান ছাড়া ভেরিয়েবলের প্রকার অনির্ধারিত। মানটিও অনির্ধারিত।
let car;
typeof car;
মান অনির্ধারিত সেট করে যেকোনো ভেরিয়েবলকে খালি করা যেতে পারে। প্রকারটিও অনির্ধারিত হবে।
let car = "Volvo";
car = undefined;
খালি মান
একটি খালি মান অনির্ধারিত সঙ্গে কিছুই করার নেই. একটি খালি স্ট্রিং এর একটি আইনি মান এবং প্রকার উভয়ই আছে।
let car = "";
typeof car;
Null
null মানে জাভাস্ক্রিপ্টে "কিছুই নয়"। এটি এমন কিছু হিসাবে বিবেচিত হয় যার অস্তিত্ব নেই।
দুর্ভাগ্যবশত, জাভাস্ক্রিপ্টে, ডাটা টাইপ নাল হল একটি অবজেক্ট।
একটি বস্তুকে নাল সেট করে খালি করা যেতে পারে:
// একটি বস্তু তৈরি করুন let person = {firstName:"John", lastname:"doe", age:50, eyecolor:"blue"}; ব্যক্তি = শূন্য; // এখন মান নাল, কিন্তু টাইপ এখনও একটি বস্তু
একটি বস্তুকে অনির্ধারিত এ সেট করে খালি করা যেতে পারে:
let person = {firstName:"John", lastname:"doe", age:50, eyecolor:"blue"}; ব্যক্তি = অনির্ধারিত; // এখন মান এবং প্রকার উভয়ই অনির্ধারিত
Undefined এবং Null এর মধ্যে পার্থক্য
undefined এবং null মান সমান কিন্তু অর্থে ভিন্ন:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
কনস্ট্রাক্টর অ্যাট্রিবিউট
কনস্ট্রাক্টর অ্যাট্রিবিউট সমস্ত জাভাস্ক্রিপ্ট ভেরিয়েবলের জন্য একটি কনস্ট্রাক্টর ফাংশন প্রদান করে।
// ফাংশন অবজেক্ট() {[নেটিভ কোড]} প্রদান করে: {নাম:'জন',বয়স:34}.নির্মাণকারী৷ // ফাংশন অ্যারে() {[নেটিভ কোড]} প্রদান করে: [1,2,3,4]।নির্মাণকারী // ফাংশন তারিখ() {[নেটিভ কোড]} প্রদান করে: new Date().constructor // ফাংশন সেট() {[নেটিভ কোড]} প্রদান করে: new Set().constructor // ফাংশন ম্যাপ() {[নেটিভ কোড]} প্রদান করে: new Map().constructor // ফাংশন ফাংশন() {[নেটিভ কোড]} প্রদান করে: function () {}.constructor
কনস্ট্রাক্টরের সাথে, আপনি একটি বস্তু একটি অ্যারে কিনা তা পরীক্ষা করতে পারেন:
(myArray.constructor === Array);
কনস্ট্রাক্টরের সাথে, আপনি একটি বস্তু একটি তারিখ কিনা তা পরীক্ষা করতে পারেন:
(myDate.constructor === Date);
সব একসাথে
typeof "John" // রিটার্ন করে "স্ট্রিং"। typeof ("John"+"Doe") // "স্ট্রিং" প্রদান করে। typeof 3.14 // "সংখ্যা" প্রদান করে। typeof (33 + 66) // "সংখ্যা" প্রদান করে। typeof NaN // "সংখ্যা" প্রদান করে। typeof 1234n // "bigint" প্রদান করে। টাইপফ সত্য // "বুলিয়ান" প্রদান করে। টাইপফ মিথ্যা // "বুলিয়ান" প্রদান করে। typeof {name:'John'} // "অবজেক্ট" প্রদান করে। typeof [1,2,3,4] // "অবজেক্ট" প্রদান করে। typeof {} // "অবজেক্ট" প্রদান করে। typeof [] // "অবজেক্ট" প্রদান করে। typeof new Object() // "অবজেক্ট" প্রদান করে। typeof new Array() // "অবজেক্ট" প্রদান করে। typeof new Date() // "অবজেক্ট" প্রদান করে। typeof new Set() // "অবজেক্ট" প্রদান করে। typeof new Map() // "অবজেক্ট" প্রদান করে। typeof function () {} // "ফাংশন" প্রদান করে। typeof x // "অনির্ধারিত" প্রদান করে। typeof null // "অবজেক্ট" প্রদান করে।
দ্রষ্টব্য:
একটি ডাটা টাইপ NaN (সংখ্যা নয়) নম্বর!
অকার্যকর অপারেটর
অকার্যকর অপারেটর একটি অভিব্যক্তি মূল্যায়ন করে এবং অনির্ধারিত ফেরত দেয়। এই অপারেটর প্রায়ই "void(0)" ব্যবহার করে একটি অভিব্যক্তি মূল্যায়ন করার সময় রিটার্ন মান ব্যবহার না করে একটি অনির্ধারিত প্রাথমিক মান পেতে ব্যবহৃত হয়।
<a href="javascript:void(0);">৷ অবৈধ সংযোগ </a> <a href="javascript:void(document.body.style.backgroundColor='red');"> শরীরের পটভূমির রঙ লাল করতে আমাকে ক্লিক করুন </a>
অনুশীলন করুন
নিম্নলিখিত কোড বিবেচনা করুন:
x = typeof('John' + 35);