JavaScript 2015 (ES6)

জাভাস্ক্রিপ্টে দ্বিতীয় প্রধান সংশোধন শিখুন

ECMAScript 2015

জাভাস্ক্রিপ্টের জন্য একটি দ্বিতীয় প্রধান সংশোধন।

ECMAScript 2015 ES6 নামেও পরিচিত।

🎯গুরুত্বপূর্ণ নোট:

ES6 জাভাস্ক্রিপ্ট ইতিহাসে সবচেয়ে বড় আপডেট হিসেবে বিবেচিত হয়। এটি আধুনিক জাভাস্ক্রিপ্ট প্রোগ্রামিং এর ভিত্তি স্থাপন করে।

জাভাস্ক্রিপ্ট 2015 (ES6) এ নতুন বৈশিষ্ট্য

বৈশিষ্ট্য ব্যাখ্যা
The let keyword ব্লক স্কোপ সহ একটি পরিবর্তনশীল ঘোষণা করে
The const keyword একটি ধ্রুবক অপরিবর্তনীয় পরিবর্তনশীল ঘোষণা করুন
Arrow Functions ফাংশন এক্সপ্রেশন লেখার জন্য একটি ছোট সিনট্যাক্সের অনুমতি দেয়
{a,b} = Operator ভেরিয়েবলে অবজেক্টের বৈশিষ্ট্য বরাদ্দ করা (বস্তু ধ্বংস করা)
[a,b] = Operator ভেরিয়েবলে অ্যারের মান বরাদ্দ করা (অ্যারে ধ্বংস করা)
... Operator পৃথক উপাদানে একটি অ্যারে বা পুনরাবৃত্তিযোগ্য ভাঙ্গে
For/of একটি পুনরাবৃত্তিযোগ্য বস্তুর মানগুলির মধ্য দিয়ে লুপ করে
Map Objects কী-মানের জোড়া ধারণ করা একটি বস্তু বস্তুর অনুরূপ কিন্তু বস্তু থেকে ভিন্ন
Set Objects একটি অ্যারে যা পৃথক মান সঞ্চয় করে
Classes জাভাস্ক্রিপ্ট অবজেক্টের জন্য টেমপ্লেট
Promises একটি বস্তু যা একটি অ্যাসিঙ্ক্রোনাস অপারেশনের সমাপ্তি উপস্থাপন করে
Symbol একটি অনন্য "লুকানো" শনাক্তকারী যা কোনো কোড অ্যাক্সেস করতে পারে না
Default Parameters ফাংশন প্যারামিটারের জন্য ডিফল্ট মান অনুমোদন করে
Rest Parameters ফাংশন অনির্দিষ্ট সংখ্যক আর্গুমেন্ট পরিচালনা করার অনুমতি দেয়
String.includes() একটি স্ট্রিং নির্দিষ্ট মান ধারণ করলে সত্য প্রদান করে
String.startsWith() একটি স্ট্রিং নির্দিষ্ট মান দিয়ে শুরু হলে সত্য প্রদান করে
String.endsWith() একটি স্ট্রিং নির্দিষ্ট মান দিয়ে শেষ হলে সত্য প্রদান করে
Array entries() একটি অ্যারে থেকে পুনরাবৃত্তিযোগ্য কী/মান জোড়া প্রদান করে
Array.from() একটি স্ট্রিং থেকে একটি অ্যারে তৈরি করে
Array keys() একটি অ্যারের কীগুলির সাথে একটি পুনরাবৃত্তিযোগ্য ফেরত দেয়
Array find() একটি পরীক্ষায় উত্তীর্ণ প্রথম উপাদানটির মান প্রদান করে
Array findIndex() পরীক্ষায় উত্তীর্ণ প্রথম উপাদানের সূচী প্রদান করে
Object.assign() উৎস বস্তু থেকে লক্ষ্য বস্তুর বৈশিষ্ট্য অনুলিপি
RegExp /u রেগুলার এক্সপ্রেশনে সম্পূর্ণ ইউনিকোড সমর্থন সক্ষম করে
RegExp /y লাস্ট ইনডেক্স অ্যাট্রিবিউট থেকে একটি "স্টিকি" অনুসন্ধান করে
isFinite() যুক্তি ইনফিনিটি বা NaN না হলে সত্য দেখায়
IsNaN() যুক্তিটি NaN হলে সত্য দেখায়
Modules আপনাকে আপনার কোডকে আলাদা ফাইলে বিভক্ত করার অনুমতি দেয়
Reflect বস্তুতে নিম্ন-স্তরের অপারেশনের জন্য অর্থ
Proxy বস্তু যা নিয়ন্ত্রণ ফাংশন জন্য অন্যান্য বস্তু অন্তর্ভুক্ত

গণিত বৈশিষ্ট্য

বৈশিষ্ট্য ব্যাখ্যা
Math.trunc(x) x এর পূর্ণসংখ্যার অংশ প্রদান করে
Math.sign(x) x ঋণাত্মক, শূন্য বা ধনাত্মক হলে -1, 0, বা 1 প্রদান করে
Math.cbrt(x) x এর কিউব রুট প্রদান করে
Math.log2(x) x এর বেস 2 লগারিদম প্রদান করে
Math.log10(x) x এর বেস 10 লগারিদম প্রদান করে

সংখ্যা বৈশিষ্ট্য

বৈশিষ্ট্য ব্যাখ্যা
Number.EPSILON 1 এবং 1-এর চেয়ে ছোট সংখ্যার মধ্যে পার্থক্য
Number.MIN_SAFE_INTEGER ন্যূনতম মান যা সঠিকভাবে নির্দিষ্ট করা যেতে পারে
Number.MAX_SAFE_INTEGER সর্বাধিক মান যা সঠিকভাবে নির্দিষ্ট করা যেতে পারে
Number.isInteger() যুক্তি একটি পূর্ণসংখ্যা হলে সত্য প্রদান করে
Number.isSafeInteger() যুক্তি একটি নিরাপদ পূর্ণসংখ্যা হলে সত্য প্রদান করে

ব্রাউজার সমর্থন

জাভাস্ক্রিপ্ট 2015 জুন 2017 পর্যন্ত সমস্ত আধুনিক ব্রাউজারে সমর্থিত:

Chrome Edge Firefox Safari Opera
51 15 54 10 38
মে 2016 এপ্রিল 2017 জুন 2017 সেপ্টেম্বর 2016 জুন 2016

🚫গুরুত্বপূর্ণ নোট:

ইন্টারনেট এক্সপ্লোরারে ES6 সমর্থিত নয়।

JavaScript let

let কীওয়ার্ড আপনাকে ব্লক স্কোপ সহ একটি ভেরিয়েবল ঘোষণা করতে দেয়।

উদাহরণ

var x = 10;
// Here x is 10
{
  let x = 2;
  // Here x is 2
}
// Here x is 10

JavaScript const

const কীওয়ার্ড আপনাকে একটি ধ্রুবক (একটি নির্দিষ্ট মান সহ একটি জাভাস্ক্রিপ্ট ভেরিয়েবল) ঘোষণা করতে দেয়।

ধ্রুবক হল let ভেরিয়েবলের মত, ব্যতীত মান পরিবর্তন করা যাবে না।

উদাহরণ

var x = 10;
// Here x is 10
{
  const x = 2;
  // Here x is 2
}
// Here x is 10

Arrow Functions

তীর ফাংশন ফাংশন এক্সপ্রেশন লেখার জন্য একটি ছোট সিনট্যাক্স।

আপনার ফাংশন কীওয়ার্ড, রিটার্ন কীওয়ার্ড বা কোঁকড়া বন্ধনীর প্রয়োজন নেই।

তীরের আগে:

let myFunction = function(a, b) {
  return a * b;
}

তীর দিয়ে:

let myFunction = (a, b) => a * b;

⚠️দ্রষ্টব্য:

তীর ফাংশন তাদের নিজস্ব এটি নেই. তারা অবজেক্ট পদ্ধতি সংজ্ঞায়িত করার জন্য উপযুক্ত নয়।

তীর ফাংশন উত্থাপিত হয় না. তারা ব্যবহার করা যেতে পারে আগে তাদের সংজ্ঞায়িত করা আবশ্যক.

রিটার্ন কীওয়ার্ড এবং কোঁকড়া ধনুর্বন্ধনী শুধুমাত্র ফাংশন একটি একক বিবৃতি হলেই বাদ দেওয়া যেতে পারে।

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

... অপারেটর একটি অ্যারে বা পুনরাবৃত্তিযোগ্য পৃথক উপাদানে বিভক্ত করে।

উদাহরণ

... অপারেটর একটি ফাংশনে আর্গুমেন্ট পাস করতে পারে:

const numbers = [23,55,21,87,56];
let minValue = Math.min(...numbers);
let maxValue = Math.max(...numbers);

... অপারেটর অ্যারে সংযুক্ত করতে ব্যবহার করা যেতে পারে:

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1, ...arr2];

For/Of Loop

জাভাস্ক্রিপ্ট ফর/অফ স্টেটমেন্ট একটি পুনরাবৃত্তিযোগ্য বস্তুর মানগুলির মাধ্যমে লুপ করে।

for/of পুনরাবৃত্তিযোগ্য ডেটা স্ট্রাকচার, যেমন অ্যারে, স্ট্রিং, গ্রাফ, নোডলিস্ট ইত্যাদির উপর পুনরাবৃত্তি করার অনুমতি দেয়।

সিনট্যাক্স

for (variable of iterable) {
  // code block to be executed
}

ক্রমানুসারে ঘোরান

const cars = ["BMW", "Volvo", "Mini"];
let text = "";

for (let x of cars) {
  text += x + " ";
}

JavaScript Classes

জাভাস্ক্রিপ্ট ক্লাস হল জাভাস্ক্রিপ্ট অবজেক্টের টেমপ্লেট।

ক্লাস তৈরি করতে ক্লাস কীওয়ার্ড ব্যবহার করুন।

সর্বদা কনস্ট্রাক্টর() নামক একটি পদ্ধতি অন্তর্ভুক্ত করুন:

সিনট্যাক্স

class ClassName {
  constructor() { ... }
}

উদাহরণ

class Car {
  constructor(name, year) {
    this.name = name;
    this.year = year;
  }
}

JavaScript Promises

একটি জাভাস্ক্রিপ্ট প্রতিশ্রুতি হল একটি বস্তু যা একটি অ্যাসিঙ্ক্রোনাস অপারেশন এবং এর মানগুলির সমাপ্তি বা ব্যর্থতাকে প্রতিনিধিত্ব করে।

এটি অ্যাসিঙ্ক্রোনাস কোড পরিচালনা করার জন্য একটি কাঠামোগত উপায় প্রদান করে, একটি মানের জন্য একটি স্থানধারক নাম যা এখনও উপলব্ধ নয়।

সিনট্যাক্স

const myPromise = new Promise(function(myResolve, myReject) {
  // "Producing Code" (May take some time)

  myResolve(); // when successful
  myReject();  // when error
});

// "Consuming Code" (Must wait for a fulfilled Promise).
myPromise.then(
  function(value) { /* code if successful */ },
  function(error) { /* code if some error */ }
);

জাভাস্ক্রিপ্ট 2015 (ES6) টিউটোরিয়াল

ES6-এ শেখা বৈশিষ্ট্যগুলি পরীক্ষা করার জন্য এই টিউটোরিয়ালটি ব্যবহার করে দেখুন।

ES6 এ প্রবর্তিত নিম্নলিখিত কীওয়ার্ডগুলির মধ্যে কোনটি মডিউল স্কোপ সহ একটি পরিবর্তনশীল ঘোষণা করতে ব্যবহৃত হয়?

var
✗ ভুল! var ফাংশন স্কোপ সহ একটি ভেরিয়েবল ঘোষণা করে, মডিউল স্কোপ নয়
function
✗ ভুল! ফাংশন একটি কীওয়ার্ড যা ফাংশন সংজ্ঞায়িত করতে ব্যবহৃত হয়, ভেরিয়েবল নয়
block
✗ ভুল! ব্লক জাভাস্ক্রিপ্টে পরিবর্তনশীল ঘোষণার জন্য একটি কীওয়ার্ড নয়
let
✓ ঠিক আছে! let কীওয়ার্ডটি ES6 এ প্রবর্তিত হয়েছিল এবং মডিউল স্কোপের সাথে একটি পরিবর্তনশীল ঘোষণা করে