ES5 এবং ES6 এর মধ্যে পার্থক্য

ES6 পরিচিতি - জাভাস্ক্রিপ্ট ইএস৬ (ES6) - Web Development

267

ECMAScript 5 (ES5) এবং ECMAScript 6 (ES6) হল জাভাস্ক্রিপ্টের দুটি গুরুত্বপূর্ণ সংস্করণ, যেগুলোর মধ্যে অনেক গুরুত্বপূর্ণ পার্থক্য রয়েছে। ES5 ২০০৯ সালে প্রকাশিত হয়, আর ES6 ২০১৫ সালে প্রকাশিত হয়। ES6, ES5 এর তুলনায় অনেক নতুন ফিচার এবং উন্নত সিনট্যাক্স প্রবর্তন করেছে।


1. ভেরিয়েবল ডিক্লেয়ারেশন

  • ES5: শুধুমাত্র var কিওয়ার্ড দিয়ে ভেরিয়েবল ডিক্লেয়ার করা যায়। var একটি function-scoped ভেরিয়েবল।

    var name = "John";
    
  • ES6: let এবং const কিওয়ার্ড যুক্ত হয়েছে। let ব্লক-স্কোপড এবং const কনস্ট্যান্ট ভেরিয়েবল তৈরি করে।

    let name = "John";  // block-scoped
    const age = 30;     // constant
    

2. ফাংশন ডিফিনিশন

  • ES5: সাধারণত ফাংশন ডিক্লেয়ার করার জন্য function কিওয়ার্ড ব্যবহার করা হয়। ES5 এ ফাংশন ডিফিনিশন লম্বা এবং কমপ্লেক্স।

    function add(a, b) {
      return a + b;
    }
    
  • ES6: Arrow Functions (=>) ব্যবহার করা সম্ভব। এটি আরও সংক্ষিপ্ত এবং কার্যকরী।

    const add = (a, b) => a + b;
    

3. অ্যারে ডিস্প্রেসিং (Array Destructuring)

  • ES5: অ্যারে থেকে মান বের করার জন্য সাধারণত ইনডেক্স ব্যবহার করা হয়।

    var arr = ["John", "Doe"];
    var firstName = arr[0];
    var lastName = arr[1];
    
  • ES6: Array Destructuring পদ্ধতি এসেছে, যা কোডকে আরো সংক্ষিপ্ত এবং সহজ করে তোলে।

    let [firstName, lastName] = ["John", "Doe"];
    

4. অবজেক্ট ডিস্প্রেসিং (Object Destructuring)

  • ES5: অবজেক্টের মান বের করার জন্য সাধারণত ডট নোটেশন ব্যবহার করা হয়।

    var person = { name: "John", age: 30 };
    var name = person.name;
    var age = person.age;
    
  • ES6: Object Destructuring পদ্ধতি দিয়ে অবজেক্ট থেকে মান বের করা যায়।

    let { name, age } = { name: "John", age: 30 };
    

5. স্প্রেড অপারেটর (Spread Operator)

  • ES5: অ্যারে বা অবজেক্টের উপাদান একত্রিত করার জন্য লুপ বা অন্যান্য পদ্ধতি ব্যবহার করতে হয়।

    var arr1 = [1, 2, 3];
    var arr2 = arr1.concat([4, 5]);
    
  • ES6: Spread Operator ... ব্যবহার করে অ্যারে বা অবজেক্টকে সহজে একত্রিত করা যায়।

    let arr1 = [1, 2, 3];
    let arr2 = [...arr1, 4, 5];
    

6. ক্লাস (Classes)

  • ES5: জাভাস্ক্রিপ্টে ক্লাসের ধারণা ছিল না, তবে ফাংশন এবং প্রোটোটাইপের মাধ্যমে পদ্ধতি তৈরি করা যেত।

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    Person.prototype.greet = function() {
      console.log("Hello, " + this.name);
    };
    
  • ES6: Class সিনট্যাক্স এসেছে, যা কোড লেখাকে আরও পরিষ্কার এবং অবজেক্ট ওরিয়েন্টেড পদ্ধতিতে উন্নীত করে।

    class Person {
      constructor(name, age) {
        this.name = name;
        this.age = age;
      }
    
      greet() {
        console.log(`Hello, ${this.name}`);
      }
    }
    

7. প্রোমিস (Promises)

  • ES5: অ্যাসিঙ্ক্রোনাস অপারেশনের জন্য কলব্যাক (callback) ফাংশন ব্যবহৃত হত, যা কোডকে জটিল এবং কঠিন করে তোলে।

    function fetchData(callback) {
      setTimeout(function() {
        callback("Data fetched");
      }, 1000);
    }
    
  • ES6: Promises পদ্ধতি এসেছে, যা অ্যাসিঙ্ক্রোনাস কোডকে আরও পরিষ্কার এবং পরিচালনাযোগ্য করে।

    function fetchData() {
      return new Promise((resolve, reject) => {
        setTimeout(() => resolve("Data fetched"), 1000);
      });
    }
    

8. টেমপ্লেট লিটারেল (Template Literals)

  • ES5: স্ট্রিং কনক্যাটেনেশন করার জন্য সাধারণত + ব্যবহার করা হয়।

    var name = "John";
    var greeting = "Hello, " + name + "!";
    
  • ES6: Template Literals ব্যবহার করে স্ট্রিং এবং এক্সপ্রেশনকে সহজে একত্রিত করা যায়।

    let name = "John";
    let greeting = `Hello, ${name}!`;
    

সারাংশ

ES6 বেশ কিছু নতুন বৈশিষ্ট্য যোগ করেছে যা জাভাস্ক্রিপ্টের কার্যকারিতা ও কোড লেখার প্রক্রিয়াকে সহজ, দ্রুত এবং আরও শক্তিশালী করেছে। এর মধ্যে let, const, arrow functions, classes, destructuring, spread operator, এবং promises অন্যতম প্রধান পরিবর্তন। ES5 ছিল একটি স্থিতিশীল সংস্করণ, কিন্তু ES6 আধুনিক জাভাস্ক্রিপ্ট ডেভেলপমেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ একটি মাইলফলক।

Content added By
Promotion

Are you sure to start over?

Loading...