জাভাস্ক্রিপ্ট: প্রোগ্রামিং ভাষা

জাভাস্ক্রিপ্ট (ইংরেজি: JavaScript; উচ্চারণ: /ˈdʒɑːvəˌskrɪpt/) ইন্টারনেটে ব্যবহৃত অন্যতম সবচেয়ে জনপ্রিয় স্ক্রিপ্টিং ল্যাংগুয়েজ। জাভাস্ক্রিপ্ট হল একটি ক্লায়েন্ট সাইড স্ক্রিপ্টিং বা ব্রাউজার স্ক্রিপ্টিং ল্যাংগুয়েজ। জাভাস্ক্রিপ্ট (সংক্ষেপে JS বলা হয়) একটি প্রোটোটাইপ-ভিত্তিক স্ক্রিপ্টিং ল্যাংগুয়েজ যাতে পরিবর্তনশীল, দুর্বল টাইপ এবং প্রথম শ্রেণীর ফাংশন আছে। এটি একটি অবজেক্ট ওরিয়েন্টেড, কার্যকরী প্রোগ্রামিং শৈলী সমর্থনকারী ভাষা। জাভাস্ক্রিপ্ট একটি ওবজেক্ট-ওরিয়েন্টেড, ডায়নামিক প্রোগ্রামিং ভাষা। এতে আছে ডেটা টাইপ, অপারেটর, গুরুত্বপূর্ণ কিছু অবজেক্ট (যেগুলো সব সময় আপনি ব্যবহার করতে পারবেন) আর ফাংশন বা মেথড। জাভা আর সি প্রোগ্রামিং ভাষা থেকে বেশ কিছু সিনট্যাক্স ধার করে নেওয়ায় যারা এসব ভাষায় পারদর্শী তাদের জন্য এটি শেখা তুলনামূলকভাবে সহজ।

JavaScript
জাভাস্ক্রিপ্ট: ইতিহাস, ভাষার ধরন, লাইব্রেরি এবং ফ্রেমওয়ার্কসমূহ
প্যারাডাইমঅবজেক্ট-ওরিয়েন্টেড (প্রোটোটাইপ-ভিত্তিক), অনুজ্ঞাসূচক, ফাংশনভিত্তিক, ইভেন্ট-ড্রিভেন
নকশাকারব্রেন্ডন আইচ
বিকাশকারীব্রেন্ডন আইচ এবং নেটস্কেপ
প্রথম প্রদর্শিত১৯৯৫
টাইপিং পদ্ধতিদুর্বল, ডাইনামিক
ওয়েবসাইটwww.ecma-international.org/publications-and-standards/standards/ecma-262/
যার দ্বারা প্রভাবিত
সি, জাভা, পার্ল, পাইথন, স্কিম, সেলফ
যাকে প্রভাবিত করেছে
এ্যাকশনস্ক্রিপ্ট, কফিস্ক্রিপ্ট, ডার্ট, জেস্ক্রিপ্ট ডট নেট, অবজেক্টিভ-জে, কিউএমএল, টিআইস্ক্রিপ্ট, টাইপস্ক্রিপ্ট
JavaScript
জাভাস্ক্রিপ্ট: ইতিহাস, ভাষার ধরন, লাইব্রেরি এবং ফ্রেমওয়ার্কসমূহ
ফাইলনাম এক্সটেনশন
.js
ইন্টারনেট মাধ্যমের ধরন
  • application/javascript
  • text/javascript (obsolete)
ইউটিআইcom.netscape.javascript-source
বিন্যাসের ধরনScripting language

ইতিহাস

১৯৯৫ সালে নেটস্কেপের প্রকৌশলী ব্রেন্ডন আইচ জাভাস্ক্রিপ্ট তৈরি করেন, যেটা মুক্তি পায় ১৯৯৬ সালের শুরুর দিকে নেটস্কেপ ২ (ব্রাউজার) এর সাথে। এর নাম দেয়া হয়েছিল LiveScript, কিন্তু মার্কেটিং কৌশলের গ্যাড়াকলে পড়ে দুর্ভাগ্যজনত এর নাম জাভাস্ক্রিপ্ট হয়ে যায়, সান মাইক্রোসিস্টেম এর জাভা ল্যাংগুয়েজের জনপ্রিয়তাকে পুঁজি করার জন্য। জাভা আর জাভাস্ক্রিপ্টের মাঝে তেমন কোন মিল না থাকা সত্ত্বেও সেই থেকে তাই জাভাস্ক্রিপ্ট নামটা নিয়ে বিভ্রান্তি থেকে গেছে। মাইক্রোসফট এই প্রোগ্রামিং ভাষার সাথে প্রায় মিলে যায় এরকম একটি ল্যাংগুয়েজ JScript নাম দিয়ে প্রায় ৩ মাস পর ইন্টারনেট এক্সপ্লোরারের সাথে বাজারে নিয়ে আসে। এদিকে নেটস্কেপ Ecma International (স্ট্যান্ডার্ড নির্ধারণ করে এরকম একটি ইউরোপীয়ান সংস্থা) এর কাছে ল্যাংগুয়েজটি উপস্থাপন করে - যার ফলাফল ১৯৯৭ সালে ECMAScript এর প্রথম সংস্করণ হিসেবে বাজারে আসে। ১৯৯৯ সালে এই স্ট্যান্ডার্ডটি আরও উন্নত হয় ECMAScript সংস্করণ ৩ হিসেবে - আর সেই থেকে ভাষাটির তেমন কোন বড় পরিবর্তন হয়নি। চতুর্থ সংস্করণটি ভেস্তে যায়, ভাষাটির জটিলতা নিয়ে মতবিরোধের ফলাফল হিসেবে। তবে এই চতুর্থ সংস্করণের অনেক অংশবিশেষ কে ভিত্তি হিসেবে ধরে ২০০৯ সালে নতুন ECMAScript এর পঞ্চম সংস্করণ প্রকাশ করা হয়। when it was deployed in the Netscape Navigator 2.0 beta 3 in December.

ভাষার ধরন

সাধারণ উদাহরণ

জাভাস্ক্রিপ্ট এ ভেরিয়েবল ডিক্লায়ার করা হয় var কি ওয়ার্ড দিয়ে :

var x; // defines the variable x and assigns to it the special value "undefined" (not to be confused with an undefined value) var y = 2; // defines the variable y and assigns to it the value 2

এই ভাষায় কমেন্ট লিখা হয় ২টা স্ল্যাশ এর মাধ্যমে (//) । যেটা উপরে দেখতে পাচ্ছেন ।

এর কোন বিল্ড ইন ফাংশান নাই ; রান টাইম ইনভাইরন মেন্ট এটা প্রদান করে থাকে . The ECMAScript এর ৫ম এডিশনে বলা হয়েছে:

… এখানে কোন প্রভিশনের প্রয়োজন নাই । ডাটা স্ফেকিশনের জন্য .

যদিও অধিকাংশেরকনসল অবজেক্ট থাকে যা দ্বারা সে এর আউটপুট দেখতে পারে :

console.log("Hello World!"); 

জাভাস্ক্রিপ্ট এর একটা সিম্পল ফাংশন:

function factorial(n) {if (n===0||n===1) return 1; //fact0=fact1=1     return n * factorial(n - 1)}  factorial(3); // returns 6 

একটা এনোনমাস ফাংশন :

function counter() { var count = 0;     return function() {return ++count}};  var closure = counter(); closure(); // returns 1 closure(); // returns 2 closure(); // returns 3 
function sum() {var x = 0;     for (var i = 0; i < arguments.length; ++i) x += arguments[i];     return x}  sum(1, 2); // returns 3 sum(1, 2, 3); // returns 6 
var counter = (function () {     var i = 0; // private property      return {   // public methods         get: function () {             alert(i);         },         set: function (value) {             i = value;         },         increment: function () {             alert(++i);         }     }; })(); // module  counter.get();       // shows 0 counter.set(6); counter.increment(); // shows 7 counter.increment(); // shows 8 

আরও উন্নত উদাহরণ

এই সাধারণ কোড জাভাস্ক্রিপ্ট এর বিভিন্য উদাহরণ প্রকাশ করে । .

/* Finds the lowest common multiple (LCM) of two numbers */ function LCMCalculator(x, y) { // constructor function     var checkInt = function (x) { // inner function         if (x % 1 !== 0) {             throw new TypeError(x + " is not an integer"); // throw an exception         }         return x;     };     this.a = checkInt(x)     //   semicolons   ^^^^  are optional, a newline is enough     this.b = checkInt(y); } // The prototype of object instances created by a constructor is // that constructor's "prototype" property. LCMCalculator.prototype = { // object literal     constructor: LCMCalculator, // when reassigning a prototype, set the constructor property appropriately     gcd: function () { // method that calculates the greatest common divisor         // Euclidean algorithm:         var a = Math.abs(this.a), b = Math.abs(this.b), t;         if (a < b) {             // swap variables             t = b;             b = a;             a = t;         }         while (b !== 0) {             t = b;             b = a % b;             a = t;         }         // Only need to calculate GCD once, so "redefine" this method.         // (Actually not redefinition—it's defined on the instance itself,         // so that this.gcd refers to this "redefinition" instead of LCMCalculator.prototype.gcd.         // Note that this leads to a wrong result if the LCMCalculator object members "a" and/or "b" are altered afterwards.)         // Also, 'gcd' === "gcd", this['gcd'] === this.gcd         this['gcd'] = function () {             return a;         };         return a;     },     // Object property names can be specified by strings delimited by double (") or single (') quotes.     lcm : function () {         // Variable names don't collide with object properties, e.g., |lcm| is not |this.lcm|.         // not using |this.a*this.b| to avoid FP precision issues         var lcm = this.a/this.gcd()*this.b;         // Only need to calculate lcm once, so "redefine" this method.         this.lcm = function () {             return lcm;         };         return lcm;     },     toString: function () {         return "LCMCalculator: a = " + this.a + ", b = " + this.b;     } };  // একটা আউটপুট ফাংশন; এই প্রয়োগ সুধুমাত্র ওয়েব ব্রাওজারে কাজ করবে ।  function output(x) {     document.body.appendChild(document.createTextNode(x));     document.body.appendChild(document.createElement('br')); }  // Note: Array's map() and forEach() are defined in JavaScript 1.6. // They are used here to demonstrate JavaScript's inherent functional nature. [[25, 55], [21, 56], [22, 58], [28, 56]].map(function (pair) { // array literal + mapping function     return new LCMCalculator(pair[0], pair[1]); }).sort((a, b) => a.lcm() - b.lcm()) // sort with this comparative function; => is a shorthand form of a function, called "arrow function"   .forEach(printResult);  function printResult(obj) {     output(obj + ", gcd = " + obj.gcd() + ", lcm = " + obj.lcm()); } 

নিচের উদাহরনটা ওয়েব ব্রাউজারে প্রদর্শন করবে ।

LCMCalculator: a = 28, b = 56, gcd = 28, lcm = 56 LCMCalculator: a = 21, b = 56, gcd = 7, lcm = 168 LCMCalculator: a = 25, b = 55, gcd = 5, lcm = 275 LCMCalculator: a = 22, b = 58, gcd = 2, lcm = 638 

লাইব্রেরি এবং ফ্রেমওয়ার্কসমূহ

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

  • আঙ্গুলার জেএস
  • রিয়্যাক্ট জেএস
  • রিয়্যাক্ট নেটিভ
  • ভিউ জেএস
  • নোড জেএস
  • জেকুয়েরী

তথ্যসূত্র

বহিঃসংযোগ

Tags:

জাভাস্ক্রিপ্ট ইতিহাসজাভাস্ক্রিপ্ট ভাষার ধরনজাভাস্ক্রিপ্ট লাইব্রেরি এবং ফ্রেমওয়ার্কসমূহজাভাস্ক্রিপ্ট তথ্যসূত্রজাভাস্ক্রিপ্ট বহিঃসংযোগজাভাস্ক্রিপ্টঅবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংইংরেজি ভাষাইন্টারনেটজাভাপ্রোগ্রামিং ভাষাব্রাউজারসাহায্য:আধ্বব/ইংরেজিসি (প্রোগ্রামিং ভাষা)স্ক্রিপ্টিং ভাষা

🔥 Trending searches on Wiki বাংলা:

উপজেলা পরিষদবাঙালি হিন্দুদের পদবিসমূহসুদীপ মুখোপাধ্যায়বিশেষ্যচ্যাটজিপিটি২০২৪ ইন্ডিয়ান প্রিমিয়ার লিগগাঁজাশিয়া ইসলামময়মনসিংহউপন্যাসবাংলাদেশের রাষ্ট্রপতিপ্লাস্টিক দূষণবৃত্তবাংলাদেশ সুপ্রীম কোর্টভারতীয় জাতীয় কংগ্রেসইউক্রেনে রুশ আক্রমণ (২০২২-বর্তমান)জোট-নিরপেক্ষ আন্দোলনকাবাএইচআইভি/এইডসদ্বিতীয় মুরাদপৃথিবীর বায়ুমণ্ডলহরমোনরামশব্দ (ব্যাকরণ)রেজওয়ানা চৌধুরী বন্যাআন্তর্জাতিক শ্রমিক দিবসপ্রথম উসমানকমনওয়েলথ অব নেশনসইবনে বতুতানেপালব্যক্তিনিষ্ঠতাগোলাপশেখ হাসিনাআব্বাসীয় স্থাপত্যআগরতলা ষড়যন্ত্র মামলাপূর্ণিমা (অভিনেত্রী)বাংলাদেশের বিশ্ববিদ্যালয়ের তালিকাবাংলাদেশের আন্তর্জাতিক স্বীকৃতিআবু মুসলিমখাদ্যঢাকা মেট্রোরেলের স্টেশনের তালিকাদীপু মনিআল্লাহইসলামবনলতা সেন (কবিতা)ঈদুল আযহাইসলামের ইতিহাসউদ্ভিদকোষসাজেক উপত্যকাজগদীশ চন্দ্র বসুপায়ুসঙ্গমকিশোরগঞ্জ জেলাস্নায়ুযুদ্ধক্যান্সারশাবনূরব্রাহ্মণবাড়িয়া জেলাঅমর্ত্য সেনহস্তমৈথুনের ইতিহাস১৮৫৭ সিপাহি বিদ্রোহপশ্চিমবঙ্গে ভারতের সাধারণ নির্বাচন, ২০২৪বাংলাদেশের বন্দরের তালিকাইউসুফচট্টগ্রাম জেলাশাহ জাহানদাজ্জালরক্তআকিজ গ্রুপবাংলাদেশের উপজেলার তালিকাবাংলাদেশের জাতিগোষ্ঠীঅলিউল হক রুমিবাংলাদেশ জাতীয় ক্রিকেট দলআয়াতুল কুরসিঅপারেশন সার্চলাইটসন্ধিধর্ষণঅর্শরোগলিঙ্গ উত্থান ত্রুটি🡆 More