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

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

হোম-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 কনভার্শন-Conversion


 

জাভাস্ক্রিপ্ট ফাংশন ইনভোকেশন


জাভাস্ক্রিপ্ট ফাংশনকে ৪ ভাবে কল(invoke) করা যায়।

প্রত্যেকটি মেথড this এর ইনিশিয়ালাইজেশনের ভিন্নতার কারণে পৃথক।


this কি-ওয়ার্ড

জাভাস্ক্রিপ্টে this কি-ওয়ার্ডটি ঐ অবজেক্টকে বুঝাবে, যে অবজেক্টের কোডের মধ্যে ইহা থাকবে।

যদি আমি একটি ফাংশনের মধ্যে this ব্যবহার করি, তাহলে ফাংশনটি যে অবজেক্টের মধ্যে রয়েছে this কি-ওয়ার্ডটি ঐ অবজেক্টকে বুঝায়।


জাভাস্ক্রিপ্ট ফাংশনকে ইনভোক করা বা ডাকা

আমরা জানি যে,জাভাস্ক্রিপ্ট ফাংশনকে এক্সিকিউট করার জন্য একে ইনভোক/কল করতে হয়।


ফাংশনকে ফাংশন হিসেবে ইনভোক করা

উদাহরণ

<!DOCTYPE html>
<html>
<head>
   <title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
    <p>
    গ্লোবাল ফাংশন (myFunction) ফেরত দেয় আর্গুমেন্টগুলোর গুনফল (a ,b):
    </p>
<p id="demo"></p>
<script>
    function myFunction(a, b) {
        return a * b;
    }
document.getElementById("demo").innerHTML = myFunction(10, 2);
</script>
</body>
</html>

ফলাফল



উপরের ফাংশনটি কোনো অবজেক্টের অধীনে নয়। কিন্তু জাভাস্ক্রিপ্টে সবসময় একটি ডিফল্ট গ্লোবাল অবজেক্ট থাকে।

এইচটিএমএল-এ এইচটিএমল পেজ হলো ডিফল্ট গ্লোবাল অবজেক্ট, উপরের ফাংশনটি এইচটিএমল পেজের অধীনে রয়েছে।

ব্রাউজারে ব্রাউজার উইন্ডো হলো পেজের অবজেক্ট। এক্ষেত্রে ফাংশনটি স্বয়ংক্রিয়ভাবে উইন্ডোর ফাংশনে রূপান্তরিত হয়।

myFunction() এবং window.myFunction() একইঃ

উদাহরণ

<!DOCTYPE html>
<html>
<head>
   <title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
    <p>গ্লোবাল ফাশংনটি স্বয়ংক্রিয়ভাবেই উইন্ডো ফাংশনে রূপান্তরিত হয়েছে। </p>
    <p>myFunction() এবং window.myFunction() একই</p>
<p id="demo"></p>
<script>
    function myFunction(a, b) {
        return a * b;
    }
document.getElementById("demo").innerHTML = window.myFunction(10, 2);
</script>
</body>
</html>

ফলাফল



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


গ্লোবাল অবজেক্ট

ফাংশন কল করার সময় ইহা কোন অবজেক্টের অধীনস্থ উল্লেখ না থাকলে this এর ভ্যালু গ্লোবাল অবজেক্ট হয়ে যায়।

ওয়েব ব্রাউজারে গ্লোবাল অবজেক্ট হলো ব্রাউজার উইন্ডো।

উদাহরণ

<!DOCTYPE html>
<html>
<head>
   <title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>

<p>উইন্ডোর অবজেক্ট এর  এইচটিএমএল  এ <b>this</b>, এর মানটি  গ্লোবাল ফাশংন। </p>
    <p id="demo"></p>
<script>
    function myFunction() {
        return this;
    }
document.getElementById("demo").innerHTML = myFunction();
</script>
</body>
</html>

ফলাফল




ফাংশনকে মেথড হিসেবে কল করা

জাভাস্ক্রিপ্টে আপনি ফাংশনকে অবজেক্টের মেথড হিসেবে ডিফাইন করতে পারেনঃ

উদাহরণ

<!DOCTYPE html>
<html>
<head>
   <title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
    <p>myObject.fullName() ফেরত দেয় আজিজুর রহমান:</p>
    <p id="demo"></p>
<script>
    var myObject = {
        firstName:"আজিজুর",
        lastName: "রহমান",
        fullName: function() {
            return this.firstName + " " + this.lastName;
        }
    }
document.getElementById("demo").innerHTML = myObject.fullName();
</script>
</body>
</html>

ফলাফল



fullName মেথডটি myObject অবজেক্টের মধ্যে বিদ্যমান একটি ফাংশন।

এখানে this দ্বারা myObject কে বুঝানো হয়েছে।

উদাহরণ

<!DOCTYPE html>
<html>
<head>
   <title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
    <p>অবজেক্ট  মেথড  এর <b>this</b>মানটি ,অবজেক্ট  এর মালিক।</p>
    <p id="demo"></p>
<script>
    var myObject = {
        firstName:"আজিজুর",
        lastName: "রহমান",
        fullName: function() {
            return this;
        }
    }
document.getElementById("demo").innerHTML = myObject.fullName();
</script>
</body>
</html>

ফলাফল



অবজেক্ট মেথড হিসেবে একটি ফাংশনকে কল করার কারণে this এর ভ্যালু এখানে অবজেক্ট দেখায়।


কনস্ট্রাক্টর হিসেবে ইনভোক করা

যদি new কি-ওয়ার্ড দ্বারা ফাংশনকে কল করা হয় তাহলে একে কনস্ট্রাক্টর ইনভোক করা বুঝায়।

উদাহরণ

<!DOCTYPE html>
<html>
<head>
   <title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
    <p>এই উদাহরনে,myFunction  একটি ফাশংন এর রচয়িতাঃ</p>
    <p id="demo"></p>
<script>
    function myFunction(arg1, arg2) {
        this.firstName = arg1;
        this.lastName  = arg2;
    }
var x = new myFunction("আজিজুর","রহমান")
document.getElementById("demo").innerHTML = x.firstName;
</script>
</body>
</html>

ফলাফল



একটি কনস্ট্রাক্টরকে ইনভোক করলে সেটি নতুন অবজেক্ট তৈরি করে। নতুন অবজেক্টটি তার কনস্ট্রাক্টর থেকে প্রোপার্টি ও মেথড ইনহেরিট করে।

কনস্ট্রাক্টরের this কি-ওয়ার্ডের কোনো ভ্যালু নেই।
যখন কনস্ট্রাক্টরকে ইনভোক করা হয় নতুন অবজেক্টটি this-এর ভ্যালু হবে।


ফাংশন মেথড দ্বারা কল করা

জাভাস্ক্রিপ্টে ফাংশন হলো অবজেক্ট। জাভাস্ক্রিপ্ট ফাংশনের প্রোপার্টি ও মেথড থাকে।

call() এবং apply() জাভাস্ক্রিপ্ট ফাংশনের দুইটি প্রিডিফাইনড মেথড। মেথড দুইটিই ফাংশন ইনভোক করার জন্য ব্যবহার করা যায় এবং উভয় মেথডেরই প্রথম প্যারামিটার হিসেবে একটি অবজেক্ট থাকে।

উদাহরণ

<!DOCTYPE html>
<html>
<head>
   <title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
    <p id="demo"></p>
<script>
    var myObject;
    function myFunction(a, b) {
        return a * b;
    }
myObject = myFunction.call(myObject, 10, 2); 
document.getElementById("demo").innerHTML = myObject;
</script>
</body>
</html>

ফলাফল




উদাহরণ

<!DOCTYPE html>
<html>
<head>
   <title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
    <p id="demo"></p>
<script>
    var myObject, myArray;
    function myFunction(a, b) {
        return a * b;
    }
    myArray = [10, 2]
    myObject = myFunction.apply(myObject, myArray);
document.getElementById("demo").innerHTML = myObject;
</script>
</body>
</html>

ফলাফল



উভয়ই মেথডই প্রথম আর্গুমেন্ট হিসেবে একটি অবজেক্ট গ্রহন করে। পার্থক্য শুধুমাত্র call() ফাংশন আর্গুমেন্টগুলো আলাদাভাবে গ্রহন করে এবং apply() ফাংশনের আর্গুমেন্টগুলো অ্যারে আকারে আকারে করে।

জাভাস্ক্রিপ্ট স্ট্রিক্ট মুডে(use strict) ফাংশন ইনভোকের সময় প্রথম আর্গুমেন্টটি this এর ভ্যালু হয়ে যায়, যদিও আর্গুমেন্টটি অবজেক্ট নয়। স্ট্রিক মুডে প্রথম আর্গুমেন্ট না দেওয়া হলে এঁরর দেখাবে। নন-স্ট্রিক্ট মুডে গ্লোবাল অবজেক্ট রুপান্তরিত হবে।