জাভাস্ক্রিপ্ট টাইপ কনভার্সন
Number() মেথড নম্বরে, String() মেথড স্ট্রিং-এ, Boolean() মেথড বুলিয়ানে রুপান্তর করে।
জাভাস্ক্রিপ্ট ডাটা টাইপ
জাভাস্ক্রিপ্টে ৫ ধরনের ডাটা টাইপ রয়েছে যাদের মধ্যে ভ্যালু থাকেঃ
- string
- number
- boolean
- object
- function
অবজেক্ট ৩ ধরনের হয়ঃ
- Object
- Date
- Array
এবং 2 ধরনের ডাটা টাইপ রয়েছে যাদের ভ্যালু নেইঃ
- Null
- Undefined
typeof অপারেটর
জাভাস্ক্রিপ্ট ভ্যারিয়েবলের ডাটা টাইপ পাওয়ার জন্য typeof অপারেটর ব্যবহার করা হয়।
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h3> typeof অপারেটর দ্বারা ভ্যারিয়েবল, অবজেক্ট, ফাংশন, অথবা এক্সপ্রেশন এর টাইপকে বুঝায় ।</h3>
<p id="test"></p>
<script>
document.getElementById("test").innerHTML =
typeof "Tahmid" + "<br>" +
typeof 3.14 + "<br>" +
typeof NaN + "<br>" +
typeof false + "<br>" +
typeof new Date() + "<br>" +
typeof function () {} + "<br>" +
typeof newDay + "<br>" +
typeof [1,2,3,4] + "<br>" +
typeof {name:'আজিজুর', age:34} + "<br>" +
typeof null;
</script>
</body>
</html><
ফলাফল
লক্ষ্য করুনঃ
- NaN এর ডাটা টাইপ হলো number
- array এর ডাটা টাইপ হলো object
- date এর ডাটা টাইপ হলো object
- null এর ডাটা টাইপ হলো object
- একটি আনডিফাইন্ড ভ্যারিয়েবলের ডাটা টাইপ হলো undefined*
- ভ্যালু এসাইন করা হয়নি এমন ভ্যারিয়েবলের ডাটা টাইপ হলো undefined*
একটি জাভাস্ক্রিপ্ট অবজেক্ট অ্যারে অথবা তারিখ কিনা যাচাই করার জন্য আপনি typeof অপারেটর ব্যবহার করতে পারবেন না।
typeof এর ডাটা টাইপ
typeof অপারেটর ভ্যারিয়েবল নয়। ইহা একটি অপারেটর। অপারেটরের ( + - * /) কোনো ডাটা টাইপ থাকে না।
কিন্তু, typeof অপারেটর অপারেন্ডের টাইপ ধারন করে সবসময় একটি স্ট্রিং রিটার্ন করে।
constructor প্রোপার্টি
constructor প্রোপার্টি সকল জাভাস্ক্রিপ্ট ভ্যারিয়েবলের কন্সট্রাক্টর ফাংশন রিটার্ন করে।
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h3>ভেরিয়েভল অথবা অবজেক্টের জন্য কন্সট্রাক্টর প্রোপার্টি কন্সট্রাক্টর ফাংশনকে রির্টান করে । </h3>
<p id="test"></p>
<script>
document.getElementById("test").innerHTML =
"আজিজুর".constructor + "<br>" +
(3.14).constructor + "<br>" +
false.constructor + "<br>" +
[1,2,3,4].constructor + "<br>" +
{name:'আজিজুর', age:24}.constructor + "<br>" +
new Date().constructor + "<br>" +
function () {}.constructor;
</script>
</body>
</html>
ফলাফল
একটি অবজেক্ট অ্যারে(তার মধ্যে "Array" শব্দটি আছে কিনা) কিনা যাচাই করার জন্য আপনি constructor প্রোপার্টি ব্যবহার করতে পারেনঃ
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h3>এই "হোম মেথড" ফাংশনটি যখন অ্যারেতে ব্যবহৃত হয়,তখন true রিটার্ন করে। </h3>
<p id="test"></p>
<script>
var firstName = ["Tamim", "Tahmid", "Motiur", "Sarif"];
document.getElementById("test").innerHTML = isArray(firstName);
function isArray(x) {
return x.constructor.toString().indexOf("Array") > -1;
}
</script>
</body>
</html>
ফলাফল
একটি অবজেক্ট Date(তার মধ্যে "Date" শব্দটি আছে কিনা) কিনা যাচাই করার জন্য আপনি constructor প্রোপার্টি ব্যবহার করতে পারেনঃ
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h3>যখন তারিখ ব্যবহার করা হয় ,তখন "home made" ফাংশনটি true রির্টান করে ।</h3>
<p id="test"></p>
<script>
var currentDate = new Date();
document.getElementById("test").innerHTML = isDate(currentDate);
function isDate(currentDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
</script>
</body>
</html>
ফলাফল
জাভাস্ক্রিপ্ট টাইপ কনভার্সন
জাভাস্ক্রিপ্ট ভ্যারিয়েবলকে একটি নতুন ভ্যারিয়েবল এবং অন্য ডাটা টাইপে রূপান্তরিত যায়ঃ
- একটি জাভাস্ক্রিপ্ট ফাংশন ব্যবহার করে
- স্বয়ংক্রিয়ভাবে জাভাস্ক্রিপ্টের মাধ্যমে
নম্বরকে স্ট্রিং-এ রূপান্তর
String() গ্লোবাল মেথডটি নম্বরকে স্ট্রিং-এ রূপান্তরিত করে।
এতে যেকোন ধরনের নম্বর, লিটারাল, ভ্যারিয়েবল বা এক্সপ্রেশন ব্যবহার করা যাবেঃ
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h3> String() মেথডটি একটি নম্বরকে স্ট্রিং-এ রূপান্তরিত করতে পারে ।</h3>
<p id="test"></p>
<script>
var x = 192;
document.getElementById("test").innerHTML =
String(x) + "<br>" + // একটি নম্বর ভ্যারিয়েবল x কে স্ট্রিং আকারে রিটার্ন করে
String(192) + "<br>" + // একটি লিটারাল নম্বর 192 কে স্ট্রিং-এ রিটার্ন করে
String(93 + 99); // একটি এক্সপ্রেশনের নম্বরকে স্ট্রিং রিটার্ন করে
</script>
</body>
</html>
ফলাফল
Number মেথডের toString() একই কাজ করে।
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h3> toString() মেথড একটি সংখ্যাকে স্ট্রিং-এ রুপান্তর করে। </h3>
<p id="test"></p>
<script>
var x = 99;
document.getElementById("test").innerHTML =
x.toString() + "<br>" +
(99).toString() + "<br>" +
(90 + 9).toString();
</script>
</body>
</html>
ফলাফল
আমাদের Number মেথড পরিচ্ছেদে আরো অনেক মেথড পাবেন।
বুলিয়ানকে স্ট্রিং-এ রূপান্তর
String() গ্লোবাল মেথডটি বুলিয়ানকে স্ট্রিং-এ রুপান্তরিত করে।
String(false) // "false" রিটার্ন করে
String(true) // "true" রিটার্ন করে
toString() বুলিয়ান মেথডও একই কাজ করে।
false.toString() // "false" রিটার্ন করে
true.toString() // "true" রিটার্ন করে
তারিখকে স্ট্রিং-এ রূপান্তর
String() গ্লোবাল মেথডটি তারিখকে স্ট্রিং-এ রুপান্তর করে।
String(Date()) // Wed Mar 22 2017 16:26:40 GMT+0600 (Bangladesh Standard Time) রিটার্ন করে
toString() Date মেথডও একই কাজ করে।
Date().toString() // Wed Mar 22 2017 16:26:40 GMT+0600 (Bangladesh Standard Time) রিটার্ন করে
আমাদের Date মেথড পরিচ্ছেদে আরো অনেক মেথড পাবেন।
স্ট্রিংকে নম্বরে রূপান্তর
Number() গ্লোবাল মেথডটি নম্বরকে স্ট্রিং-এ রুপান্তর করে।
স্ট্রিং নম্বর("3.14") নম্বরে(3.14) রুপান্তর হয়।
এম্পটি স্ট্রিং 0 তে রুপান্তরিত হয়।
অন্য সবকিছু NaN হবে।
Number("") // 0 রিটার্ন করে
Number("99 88") // NaN রিটার্ন করে
Number("2.54") // 3.14 রিটার্ন করে
Number(" ") // 0 রিটার্ন করে
আমাদের Number মেথড পরিচ্ছেদে আপনি আরো মেথড পাবেন।
ইউনারী + অপারেটর
ইউনারী + অপারেটর একটি ভ্যারিয়েবলকে নম্বরে রুপান্তর করতে ব্যবহার করা যাবেঃ
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h3> typeof অপারেটর দ্বারা ভ্যারিয়েবল অথবা এক্সপ্রেশনকে রির্টান করে । </h3>
<button onclick="myFunc()"> চেষ্টা করি </button>
<p id="test"></p>
<script>
function myFunc() {
var b = "9";
var a = + b;
document.getElementById("test").innerHTML =
typeof b + "<br>" + typeof a;
}
</script>
</body>
</html>
ফলাফল
যদি ভ্যারিয়েবলকে রুপান্তর করা না যায় তারপরও এর টাইপ number এ রুপান্তরিত হয়, যার ভ্যালু NaN হবেঃ
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h3>typeof অপারেটর দ্বারা ভ্যারিয়েবল অথবা এক্সপ্রেশনকে রির্টান করে । </h3>
<button onclick="myFunc()"> চেষ্টা করি </button>
<p id="test"></p>
<script>
function myFunc() {
var b = "Tamim";
var a = + b;
document.getElementById("test").innerHTML =
typeof a + "<br>" + a;
}
</script>
</body>
</html>
ফলাফল
বুলিয়ানকে নম্বরে রূপান্তর
Number() গ্লোবাল মেথডটি বুলিয়ানকে নম্বরে রুপান্তর করে।
Number(false) // 0 রিটার্ন করে
Number(true) // 1 রিটার্ন করে
তারিখকে নম্বরে রূপান্তর
Number() গ্লোবাল মেথডটি তারিখকে নম্বরে রুপান্তর করেঃ
উদাহরণ
a = new Date();
Number(a) // রিটার্ন করে 1490189529374
getTime() date মেথডও একই কাজ করে।
a = new Date();
a.getTime() // 1490189529374 রিটার্ন করে
স্বয়ংক্রিয় টাইপ কনভার্সন
যখন জাভাস্ক্রিপ্ট একটি "ভুল" ডাটা টাইপ নিয়ে কাজ করে, তখন এটি "সঠিক" টাইপের ভ্যালুতে রূপান্তর করতে চেষ্টা করে।
ফলাফল এমন হতে পারেঃ
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<p id="test"></p>
<script>
var x = [];
document.getElementById("test").innerHTML =
("3" + 1) + "<br>" + // 31 রিটার্ন করে,কারন 1 পরিবর্তিত হয়ে "1" হয়েছে
("3" - 1) + "<br>" + // 2 রিটার্ন করে,কারন "3" পরিবর্তিত হয়ে 3 হয়েছে
("3" * "1") + "<br>" + // 3 রিটার্ন করে,কারন "3" এবং "1" পরিবর্তিত হয়ে 3 এবং 1 হয়েছে
(3 + null) + "<br>" + // 3 রিটার্ন করে,কারন null পরিবর্তিত হয়ে 0 হয়েছে
("3" + null) + "<br>" + // "3null" রিটার্ন করে,কারন null পরিবর্তিত হয়ে "null" হয়েছে
("3" / "1") + "<br>"
</script>
</body>
</html>
ফলাফল
স্বয়ংক্রিয় স্ট্রিং কনভার্সন
আপনি একটি অবজেক্ট অথবা ভ্যারিয়েবলের আউটপুট নিতে চাইলে জাভাস্ক্রিপ্ট স্বয়ংক্রিয়ভাবে ভ্যারিয়েবলের toString() ফাংশনকে কল করেঃ
document.getElementById("test").innerHTML = myVar;
// if myVar = {name:"Azizur"} // toString "[object Object]" এ রুপান্তর করে
// if myVar = [1,2,3,4] // toString "1,2,3,4" এ রুপান্তর করে
// if myVar = new Date() // toString "Wed Mar 22 2017 19:46:30 GMT+0600" এ রুপান্তর করে
নম্বর এবং বুলিয়ানের ক্ষেত্রেও একই রকম ঘটেঃ
// if myVar = 123 // toString "123" এ রুপান্তর করে
// if myVar = true // toString "true" এ রুপান্তর করে
// if myVar = false // toString "false" এ রুপান্তর করে
জাভাস্ক্রিপ্ট টাইপ কনভার্সন টেবিল
নিম্নোক্ত টেবিলে জাভাস্ক্রিপ্টের বিভিন্ন ভ্যালুকে নম্বর, স্ট্রিং, এবং বুলিয়ানে রুপান্তর করে দেখানো হয়েছেঃ
প্রকৃত মান |
নম্বরে রুপান্তর |
স্ট্রিং-এ রুপান্তর |
বুলিয়ানে রুপান্তর |
---|---|---|---|
false | 0 | "false" | false |
true | 1 | "true" | true |
0 | 0 | "0" | false |
1 | 1 | "1" | true |
"0" | 0 | "0" | true |
"1" | 1 | "1" | true |
NaN | NaN | "NaN" | false |
Infinity | Infinity | "Infinity" | true |
-Infinity | -Infinity | "-Infinity" | true |
"" | 0 | "" | false |
"20" | 20 | "20" | true |
"twenty" | NaN | "twenty" | true |
[ ] | 0 | "" | true |
[20] | 20 | "20" | true |
[10,20] | NaN | "10,20" | true |
["twenty"] | NaN | "twenty" | true |
["ten","twenty"] | NaN | "ten,twenty" | true |
function(){} | NaN | "function(){}" | true |
{ } | NaN | "[object Object]" | true |
null | 0 | "null" | false |
undefined | NaN | "undefined" | false |
কোটেশনের ভ্যালুগুলো স্ট্রিং ভ্যালু নির্দেশ করে।
লাল রংয়ের ভ্যালু দ্বারা বুঝানো হয়েছে প্রোগ্রামাররা এই ভ্যালু প্রত্যাশা করে না।