জাভাস্ক্রিপ্ট জেকুয়েরি এঙ্গুলার জেএস এইচটিএমএল সিএসএস বুটস্ট্রাপ পিএইচপি সি প্রোগ্রামিং
ফোরাম
×

জেএস টিউটোরিয়াল

হোম-HOME পরিচিতি-Introduction ব্যবহার-Uses গঠনপ্রণালী-Syntax আউটপুট-Output তথ্যের ধরণ-Data Type চলক-Variable স্টেটমেন্ট-Statement মন্তব্য-Comment অপারেটর-Operator গণিত-Arithmetic এসাইনমেন্ট-Assignment ফাংশন-Function অবজেক্ট-Object স্কোপ-Scope ইভেন্ট-Event ধরণ পরিবর্তন-Type Conversion রেগুলার এক্সপ্রেশন-RegExp ভুল-Error জেসন-JSON হয়েস্টিং-Hoisting

কন্ট্রোল স্টেটমেন্ট

বুলিয়ান-Boolean তুলনা-Comparison শর্তাবলী-Condition সুইচ-Switch ফর লুপ- For Loop হোয়াইল লুপ-While Loop ব্রেক-Break এবং কন্টিনিউ-continue

স্ট্রিং এবং অ্যারে

স্ট্রিং-String স্ট্রিং পদ্ধতি-String Method অ্যারে-Array অ্যারে পদ্ধতি -Array Method অ্যারে সর্ট-ArraySort

সংখ্যা, গণিত ও তারিখ

সংখ্যা-Number সংখ্যা পদ্ধতি-Number Method গণিত-Math তারিখ-Date তারিখ বিন্যাস-Date Format তারিখ পদ্ধতি-Date Method

জেএস ফাংশন-Function

ফাংশনের সংজ্ঞা-Definition ফাংশন প্যারামিটার-Parameter ফাংশনকে ডাকা-Invocation ফাংশন ক্লোজার-Closure

জেএস অবজেক্ট-Object

অবজেক্টের সংজ্ঞা-Definition অবজেক্ট প্রোপার্টি-Property অবজেক্ট মেথড-Method অবজেক্ট প্রোটোটাইপ-Prototype

জেএস ফর্ম-Form

ফর্ম বৈধকরণ-Validation ফর্ম এপিআই-API

জেএস এইচটিএমএল ডোম-DOM

ডোম(DOM) পরিচিতি ডোম মেথড-Method ডোম ডকুমেন্ট-Document ডোম এলিমেন্ট -Element ডোম এইচটিএমএল-HTML ডোম সিএসএস-CSS ডোম অ্যানিমেশন-Animation ডোম ঘটনা-Event ডোম ইভেন্টলিসেনার-EventListener ডোম নেভিগেশন-Navigation ডোম নোড-Node ডোম নোডতালিকা-Nodelist

জেএস ব্রাউজার বোম-BOM

উইন্ডো-Window স্ক্রিন-Screen লোকেশন-Location হিস্টোরি-History নেভিগেটর-Navigator পপআপ এলার্ট-Popup Alert টাইমিং-Timing কুকি-Cookie

জেএস রেফারেন্স

জাভাস্ক্রিপ্ট অবজেক্ট এইচটিএমএল ডোম অবজেক্ট অপারেটর-Operator স্টেটমেন্ট-Statement অ্যারে-Array বুলিয়ান-Boolean স্ট্রিং-String সংখ্যা-Number রেগুলার এক্সপ্রেশন-RegExp গণিত-Math তারিখ-Date গ্লোবাল-Global কনভার্শন-Conversion


 

জাভাস্ক্রিপ্ট অ্যারে


একটি ভ্যারিয়েবলের মধ্যে অনেক ভ্যালু রাখার জন্য অ্যারে ব্যবহার করা হয়।

উদাহরণ

<!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 animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals;
</script>

</body>
</html>

ফলাফল




অ্যারে কি?

অ্যারে একটি বিশেষ ভ্যারিয়েবল যা একসঙ্গে একাধিক মান ধারণ করতে পারে।

আপনার কাছে যদি একাধিক ভ্যালুর একটি লিস্ট থাকে(উদাহরণস্বরুপঃ স্যাট মেম্বারদের নামের লিস্ট) তাহলে সেগুলোকে আলাদা আলাদা ভ্যারিয়েবলের মধ্যে রাখলে নিচের মত দেখাবেঃ

var satt1 = "Azizur";
var satt2 = "Shapla";
var satt3 = "Tamim"; var satt4 = "Tahmid";

আপনার কাছে যদি ৩০০ মেম্বারের লিস্ট থাকে এবং লুপের মাধ্যমে একজন মেম্বারকে পেতে চান!

এর সমাধান হচ্ছে অ্যারে।

অ্যারে একই নামের অধীনে অনেক ভ্যালু রাখতে পারে এবং আপনি ইন্ডেক্স নম্বর ব্যবহার করে ভ্যালু এক্সেস করতে পারেন।


অ্যারে তৈরি

অ্যারে লিটারাল ব্যবহার জাভাস্ক্রিপ্ট অ্যারে তৈরি করার সবচেয়ে সহজ উপায়।

সিন্টেক্সঃ

var array-name = [item1, item2, ...];       

উদাহরণ

<!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 animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals;
</script>

</body>
</html>

ফলাফল



অ্যারে ডিক্লেয়ারেশন একাধিক লাইনেও করা যায়ঃ

উদাহরণ

<!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 animals = [
    "Lion", 
    "Tiger", 
    "Horse", 
    "Hen"
];
document.getElementById("test").innerHTML = animals;
</script>

</body>
</html>

ফলাফল



শেষের এলিমেন্টের পরে কখনো কমা ব্যবহার করবেন না (যেমনঃ "Hen",) ।


জাভাস্ক্রিপ্ট new কিওয়ার্ড ব্যবহার

নিম্নলিখিত উদাহরণেও একটি অ্যারে তৈরি করা হয়েছেঃ

উদাহরণ

<!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 animals = new Array("Lion", "Tiger", "Horse", "Hen");
document.getElementById("test").innerHTML = animals;
</script>

</body>
</html>

ফলাফল



উপরে দুটি উদাহরণ একই কাজ করে। এখানে new array() ব্যবহার করার প্রয়োজন নেই।
সহজ, পাঠযোগ্যতা এবং এক্সিকিউশন গতির জন্য প্রথম পদ্ধতিটি ব্যবহার করুন।


অ্যারের এলিমেন্ট এক্সেস

আপনি ইন্ডেক্স নম্বর উল্লেখ করার মাধ্যমে একটি অ্যারে এলিমেন্ট নির্দেশ করতে পারেন। নিচের স্টেটমেন্টে satt অ্যারের তৃতীয় এলিমেন্টকে এক্সেস করা হয়েছেঃ

var name = animals[2];

এই স্টেটমেন্টে তৃতীয় এলিমেন্টকে পরিবর্তন করা হয়েছেঃ

animals[2] = "Elephant";

উদাহরণ

<!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 animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals[1];
</script>

</body>
</html>

ফলাফল



একটি অ্যারের প্রথম এলিমেন্ট হচ্ছে [0], দ্বিতীয়টি হচ্ছে [1]। অ্যারের ইনডেক্স ০ দিয়ে শুরু হয়।


সম্পূর্ণ অ্যারে অ্যাক্সেস করা

জাভাস্ক্রিপ্টে সম্পূর্ন অ্যারেকে এক্সেস করার জন্য শুধুমাত্র অ্যারের নাম লিখতে হয়ঃ

উদাহরণ

<!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 animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals;
</script>

</body>
</html>

ফলাফল




অ্যারে হচ্ছে অবজেক্ট

অ্যারে স্পেশাল টাইপের অবজেক্ট। জাভাস্ক্রিপ্টের typeof অপারেটর অ্যারের ক্ষেত্রে object রিটার্ন করে।

কিন্তু, জাভাস্ক্রিপ্ট অ্যারেকে অ্যারে হিসেবে সবচেয়ে ভালো বর্ণনা করা যায়।

অ্যারে সংখ্যা ব্যবহার করে তার এলিমেন্টকে এক্সেস করে। এই উদাহরণে animals[1] দ্বারা অ্যারেকে এক্সেস করলে Tiger রিটার্ন করেঃ

উদাহরণ

<!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 animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals[1];
</script>

</body>
</html>

ফলাফল



অবজেক্ট তার মেম্বারকে এক্সেস করার জন্য নাম ব্যবহার করে। এই উদাহরনে, member.firstName দ্বারা অবজেক্টকে এক্সেস করলে 'আজিজুর' রিটার্ন করেঃ

উদাহরণ

<!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>

<h2>জাভাস্ক্রিপ্ট অবজেক্ট</h2>
<p>জাভাস্ক্রিপ্ট অবজেক্ট প্রোপার্টি অ্যাক্সেস করতে নাম ব্যবহার করে। </p>
<p id="test"></p>

<script>
var member = {firstName:"আজিজুর", lastName:"রহমান", age:32};
document.getElementById("test").innerHTML = member["firstName"];
</script>

</body>
</html>

ফলাফল




অ্যারে এলিমেন্ট অবজেক্ট হতে পারে

জাভাস্ক্রিপ্ট ভ্যারিয়েবল অবজেক্ট হতে পারে। অ্যারে হচ্ছে স্পেশাল টাইপের অবজেক্ট।

এই কারনে, বিভিন্ন ধরনের ভ্যারিয়েবলকে একই অ্যারেতে রাখা যায়।

একটি অ্যারেতে আপনি অবজেক্ট, ফাংশন এবং অন্য একটি অ্যারেও রাখতে পারেনঃ

myArray[0] = Date.now;
myArray[1] = myFunc;
myArray[2] = mysatt;

অ্যারে প্রোপার্টি এবং মেথড

জাভাস্ক্রিপ্ট অ্যারের সবচেয়ে শক্তিশালী দিক হচ্ছে এর বিল্ট-ইন প্রোপার্টি এবং মেথডঃ

var a = satt.length;   // এলিমেন্টের সংখ্যা রিটার্ন করে
var b = satt.sort();   // sort() মেথড অ্যারেকে শ্রেণীবদ্ধ করে

অ্যারে মেথড সম্পর্কে পরবর্তী পরিচ্ছেদে আরো ভালোভাবে আলোচনা করা হয়েছে।


length প্রোপার্টি

length প্রোপার্টি একটি অ্যারের এলিমেন্টের সংখ্যা রিটার্ন করে।

উদাহরণ

<!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>

<h2>জাভাস্ক্রিপ্ট অ্যারে</h2>
<p> length প্রোপার্টি একটি  অ্যাারের length রিটার্ন করে। </p>

<p id="test"></p>

<script>
var animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals.length;
</script>

</body>
</html>

ফলাফল




অ্যারে এলিমেন্ট যোগ করা

অ্যারেতে নতুন এলিমেন্ট যোগ করার সবচেয়ে সহজ পদ্ধতি হচ্ছে push মেথড ব্যবহার করাঃ

উদাহরণ

<!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> push মেথড একটি অ্যারেতে  নতুন এলিমেন্টকে সংযুক্ত করে। </h3>

<button onclick="myFunc()">নিজে চেষ্টা করি</button>

<p id="test"></p>

<script>
var animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals;

function myFunc() {
    animals.push("Elephant");
    document.getElementById("test").innerHTML = animals;
}
</script>

</body>
</html>

ফলাফল



length প্রোপার্টিও ব্যবহার করে অ্যারে তে নতুন প্রোপার্টি যোগ করা যায়ঃ

উদাহরণ

<!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> length প্রোপার্টি  push() মেথড ছাড়াই একটি  অ্যাারেতে নতুন এলিমেন্ট সহজ পদ্ধতিতে সংযুক্ত করে। </h3>

<button onclick="myFunc()">নিজে চেষ্টা করি</button>

<p id="test"></p>

<script>
var animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals;

function myFunc() {
    animals[animals.length] = "Elephant";
    document.getElementById("test").innerHTML = animals;
}
</script>
</body>
</html>

ফলাফল



উদাহরণ

<!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> একটি অ্যারের মধ্যে উচ্চ ইনডেক্স সমূহের সঙ্গে এলিমেন্ট যোগ করে  undefined তৈরি করতে পারেন। </h3>

<button onclick="myFunc()">নিজে চেষ্টা করি</button>

<p id="test"></p>

<script>
var animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals;

function myFunc() {
    animals[9] = "Elephant";
    document.getElementById("test").innerHTML = animals[6];
}
</script>

</body>
</html>

ফলাফল




অ্যারে এলিমেন্টে লুপিং করা

অ্যারে এলিমেন্টের মধ্যে লুপ করার জন্য একটি সবচেয়ে ভালো পদ্ধতি হচ্ছে "for" লুপ ব্যবহার করাঃ

উদাহরণ

<!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>
var animals = ["Lion", "Tiger", "Horse", "Hen"];;
var aLength = animals.length;
var result;
var i;
result = "<p>";
for (i = 0; i < aLength; i++) {
    result +=  animals[i] + "<br>";
}
result += "</p>";
document.getElementById("test").innerHTML = result;
</script>

</body>
</html>

ফলাফল




অ্যাসোসিয়েটিভ অ্যারে

অ্যারের ইনডেক্সিং নাম দিয়ে অনেক প্রোগ্রামিং ল্যাংগুয়েজে সাপোর্ট করে।

যেসকল অ্যারের ইনডেক্স নাম দিয়ে করা হয় তাদেরকে অ্যাসোসিয়েটিভ অ্যারে বলে।

জাভাস্ক্রিপ্টে এটা সাপোর্ট করে না।

জাভাস্ক্রিপ্টে, অ্যারে সবসময় নম্বর ইনডেক্স ব্যবহার করে।

উদাহরণ

<!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 member = [];
member[0] = "Tamim";
member[1] = "Tahmid";
member[2] = 100; 
document.getElementById("test").innerHTML =
member[1] + " " + member.length;
</script>

</body>
</html>

ফলাফল



সতর্কবাণী!!!
আপনি যদি ইনডেক্সিং-এ নাম ব্যবহার করেন জাভাস্ক্রিপ্ট অ্যারেকে স্ট্যান্ডার্ড অবজেক্ট হিসেবে পুনরায় ডিফাইন করে। তখন সকল অ্যারে মেথড এবং প্রোপার্টি ভুল ফলাফল দেখায়।

উদাহরণ

<!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>আপনি অ্যারের ইন্ডেক্সিং নাম দিয়ে করলে জাভাস্ক্রিপ্ট অ্যারেকে একটি স্ট্যান্ডার্ড অবজেক্টে পরিণত করে এবং অ্যারের সকল প্রোপার্টি ও মেথড undefined বা ভুল ফলাফল রিটার্ন করে।</h3>

<p id="test"></p>

<script>
var member = [];
member["firstName"] = "Azizur";
member["lastName"] = "Rahman";
member["age"] = 32;
var a = member.length;
var b = member[0];
document.getElementById("test").innerHTML =
a + " " + b;
</script>

</body>
</html>

ফলাফল




অ্যারে এবং অবজেক্টের মধ্যে পার্থক্য

জাভাস্ক্রিপ্টে, অ্যারে নম্বর ইনডেক্স ব্যবহার করে।

জাভাস্ক্রিপ্টে, অবজেক্ট নাম ইনডেক্স ব্যবহার করে।

অ্যারে হচ্ছে একটি স্পেশাল অবজেক্ট যা নম্বর ইনডেক্স ব্যবহার করে।


কখন অ্যারে আর কখন অবজেক্ট ব্যবহার করবেন।

  • জাভাস্ক্রিপ্ট অ্যাসোসিয়েটিভ অ্যারে সাপোর্ট করে না।
  • যখন আপনি এলিমেন্টের নাম স্ট্রিং(টেক্সট) আকারে চাইবেন তখন অবজেক্ট ব্যবহার করবেন।
  • যখন আপনি এলিমেন্টের নাম নম্বর হিসেবে চাইবেন তখন আপনি অ্যারে ব্যবহার করবেন।

new Array() পরিহার করা

এখানে জাভাস্ক্রিপ্টের বিল্ট-ইন অ্যারে কনস্ট্রাক্টর new Array() প্রয়োজন নেই।

এর পরিবর্তে [] ব্যবহার করুন।

এই দুইটি ভিন্ন স্টেটমেন্টই points নামের নতুন অ্যারে তৈরি করেছেঃ

var scores = new Array(30, 112, 50, 2, 8, 14); // খারাপ পদ্ধতি
var scores = [30, 112, 50, 2, 8, 14];         // ভালো পদ্ধতি

এই দুইটি ভিন্ন স্টেটমেন্টই ৬ সংখ্যার একটি নতুন অ্যারে তৈরি করেঃ

উদাহরণ

<!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> new Array() পরিবর্তে  [] ব্যবহার করুন।  </h3>

<p id="test"></p>

<script>
//var scores = new Array(30, 112, 50, 2, 8, 14); // খারাপ পদ্ধতি
var scores = [30, 112, 50, 2, 8, 14];
document.getElementById("test").innerHTML = scores[0];
</script>

</body>
</html>

ফলাফল



new কিওয়ার্ড কোডকে জটিল করে তুলে। এটি অপ্রত্যাশিত ফলাফল দেখাতে পারেঃ

var points = new Array(30, 112);  // দুইটি এলিমেন্ট দিয়ে অ্যারে তৈরি (30 এবং 112)

যদি একটি এলিমেন্ট বাদ দেই?

উদাহরণ

<!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> new Array() ব্যবহার পরিহার করুন </h3>

<p id="test"></p>

<script>
var scores = new Array(30);
document.getElementById("test").innerHTML = scores[0];
</script>

</body>
</html>

ফলাফল




একটি অ্যারেকে কিভাবে চিনা যায়

একটি সাধারণ প্রশ্ন হলোঃ একটি ভ্যারিয়েবল অ্যারে কিনা কিভাবে বুঝবো?

সমস্যা হচ্ছে জাভাস্ক্রিপ্টের typeof অপারেটর "object" রিটার্ন করেঃ

উদাহরণ

<!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>
var animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = typeof animals;
</script>

</body>
</html>

ফলাফল



typeof অপারেটর অবজেক্ট রিটার্ন করে কারন জাভাস্ক্রিপ্ট অ্যারে একটি অবজেক্ট।

সমাধান ১

এই সমস্যা দূর করার জন্য ECMAScript 5 একটি নতুন মেথড Array.isArray() নির্ধারন করেঃ

উদাহরণ

<!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>এই সমস্যা দূর করার জন্য ECMAScript 5 একটি নতুন মেথড Array.isArray() নির্ধারন করেঃ </h3>

<p id="test"></p>

<script>
var animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = Array.isArray(animals);
</script>

</body>
</html>

ফলাফল



এই সমাধানের একটি সমস্যা রয়েছে, পুরাতন ব্রাউজারে ECMAScript 5 সাপোর্ট করে না।

সমাধান ২

এই সমস্যা দূর করার জন্য আপনি একটি isArray() ফাংশন তৈরি করে নিতে পারেনঃ

উদাহরণ

<!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 animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = isArray(animals);

function isArray(x) {
    return x.constructor.toString().indexOf("Array") > -1;
}
</script>

</body>
</html>

ফলাফল



যদি আর্গুমেন্ট একটি অ্যারে হয় তাহলে উপরের ফাংশনটি সব সময় true রিটার্ন করবে।

সমাধান ৩

যদি একটি অবজেক্ট কনস্ট্রাক্টরের মাধ্যমে তৈরি হয় তাহলে instanceof অপারেটর true রিটার্ন করেঃ

উদাহরণ

<!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>যখন একটি এরেতে instanceof অপারেটর ব্যবহৃত হয়, তখন true রিটার্ন করে। </h3>

<p id="test"></p>

<script>
var animals = ["Lion", "Tiger", "Horse", "Hen"];
document.getElementById("test").innerHTML = animals instanceof Array;
</script>

</body>
</html>

ফলাফল