DEV Community

Cover image for What is JavaScript??
Moriam Akter Swarna
Moriam Akter Swarna

Posted on • Originally published at Medium

What is JavaScript??

JavaScript কি??

JavaScript হচ্ছে একটা object oriented, high-level, dynamic প্রোগ্রামিং ল্যাঙ্গুয়েজ যা ওয়েবসাইটকে interactive করতে ব্যবহার করা হয়। জাভাস্ক্রিপ্ট HTML এবং CSS কে আপডেট বা পরিবর্তন করতে পারে। জাভাস্ক্রিপ্ট একটি client side scripting language অর্থাৎ এটি ব্যবহারকারীর ব্রাউজারে চলতে থাকে।
JavaScript ওয়েবসাইটের কনটেন্টকে আপডেট করতে পারে, মাল্টিমিডিয়া ডাটা যেমন ভিডিও, ইমেজ, অডিও, অ্যানিমেশন ইত্যাদি কন্ট্রোল করতে পারে। জাভাস্ক্রিপ্ট সার্ভার সাইড এবং ক্লায়েন্ট সাইড উভয় দিকে কাজ করতে পারে।
1995 সালে Brendan Eich প্রথম JavaScript আবিষ্কার করেন।


কেন JavaScript ব্যবহার করব??

১. Client side Interactivity: JavaScript ডেভলপারদেরকে ক্লায়েন্ট সাইডে ইন্টারেক্টিভ এবং ডাইনামিক ইউজার ইন্টারফেস তৈরি করতে দেয়, যার ফলে user experience ভালো হয়।

২. Cross browser compatibility: জাভাস্ক্রিপ্ট প্রায় সমস্ত প্রধান ব্রাউজার গুলোতে রান করতে পারে। যেহেতু সব ধরনের প্লাটফর্মে জাভাস্ক্রিপ্ট রান করতে পারে তাই এটি web application তৈরীর ক্ষেত্রে প্রধান পছন্দ হয়ে উঠেছে।

৩. Asynchronous Programming: JavaScript asynchronous task হ্যান্ডেল করতে পারে কোন ধরনের ব্লক করা ছাড়ায় একাধিক কাজ একসঙ্গে করতে পারে।

৪. Versatility: জাভাস্ক্রিপ্ট যে শুধুমাত্র ওয়েব ডেভেলপমেন্ট এর ক্ষেত্রে ব্যবহার করা যায় এমন নয়। Node js উদ্ভাবনের পর থেকে জাভা স্ক্রিপ্ট সার্ভার সাইড ডেভেলপমেন্ট এর জন্য ব্যবহার করা যায়। এছাড়াও mobile development এবং machine learning এর মত কাজেও জাভাস্ক্রিট ব্যবহার করা যায়।


জাভাস্ক্রিপ্ট এর Features:

Features of Javascript

  • Client-Side Technology: জাভাস্ক্রিপ্ট যেহেতু ক্লায়েন্টের ব্রাউজারে কাজ করে তাই এটি ডায়নামিক ভাবে কনটেন্ট দেখাতে পারে এবং ওয়েব পেজকে ইন্টারএকটিভ করতে পারে।

  • Greater Control: জাভাস্ক্রিপ্ট ইউসারের ব্রাউজারের ওপর কন্ট্রোল করতে পারে এবং ওয়েব পেজের এলিমেন্ট গুলোকে manipulate করতে পারে

  • Detecting User Browser & OS: ইউজার কোন ব্রাউজার ব্যবহার করছে এবং ইউজারের অপারেটিং সিস্টেম টা কি জাভাস্ক্রিপ্ট সেটা ডিটেক্ট করতে পারে এবং সে অনুযায়ী কনটেন্ট ডেলিভারি কাস্টমাইজ করতে পারে।

  • Performing Simple Calculation: JavaScript বেসিক ক্যালকুলেশন করতে পারে। অর্থাৎ সার্ভারে কোন রিকোয়েস্ট করা ছাড়াই সিম্পল JavaScript arithmethic operations গুলো যেমন- addition, subtraction, multiplication, division etc. করতে পারে। যার ফলে সার্ভারের উপর লোড কমে যায় এবং পারফরম্যান্স ইমপ্রুভ হয়।

  • Validating User’s Input: ইউজারের ইনপুটগুলো এক্সপেক্টেড ফরমেটে আছে কিনা সেটা চেক করে দেখতে পারে।

  • Handling Date & Time: জাভাস্ক্রিপ্ট এর মাধ্যমে আমরা ডেট এবং টাইম কে ম্যানেজ করতে পারি, manipulate করতে পারি।

  • Generating HTML: জাভা স্ক্রিপ্ট ডাইনামিক্যালি এইচটিএমএল কন্টেন্টকে জেনারেট করতে পারে যার ফলে আমরা ওয়েব পেজে রিয়েল টাইম আপডেট পেতে পারি।

  • Semicolon Insertion: যদি ডেভেলপাররা লাইনের শেষে সেমিকোলন ব্যবহার না করে জাভাস্ক্রিপ্ট অটোমেটিক সেমিকোলন insert করতে পারে।


জাভাস্ক্রিপ্ট এর সুবিধা সমূহ:

১. জাভাস্ক্রিপ্ট ব্যবহার করে ডায়নামিক এবং রেস্পন্সিভ ইউজার ইন্টারফেস তৈরি করা যায়।

২. জাভাস্ক্রিপ্ট শেখা অনেক সহজ, বিশেষ করে বিগিনারদের জন্য। জাভাস্ক্রিপ্ট এর সিমট্যাক্স অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ এর মতই।

৩. জাভাস্ক্রিপ্টের অনেক বড় একটা কমিউনিটি রয়েছে এবং ডেভেলপারদের জন্য অসংখ্য documentation এবং রিসোর্স রয়েছে। অর্থাৎ কেউ যদি কোন সমস্যায় পড়ে অতি সহজেই বিভিন্ন রিসোর্স থেকে সাহায্য পেতে পারবে।

৪. যেহেতু জাভাস্ক্রিপ্ট দিয়েই ক্লায়েন্ট সাইড এবং সার্ভার সাইড উভয়ের কাজ করা সম্ভব তাই একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ এর মাধ্যমেই ওয়েব অ্যাপ্লিকেশন তৈরি করা সম্ভব।

৫. জাভাস্ক্রিপ্ট এর প্রচুর ফ্রেমওয়ার্ক ও লাইব্রেরি রয়েছে। যেমন- React, Angular, Vue, jQuery, Node js, Svelte, solid js etc.


জাভাস্ক্রিপ্ট এর কিছু অসুবিধা:

১. সিকিউরিটির কারনে জাভাস্ক্রিপ্ট ক্লায়েন্ট মেশিনের ফাইল গুলোকে read বা write করতে পারেনা।

২. যেহেতু জাভাস্ক্রিপ্ট Single threaded, অর্থাৎ জাভাস্ক্রিপ্ট এক সময়ে একটা কাজ করে। তাই এটি multi-threading সাপোর্ট করে না। Multi-threading মানে হচ্ছে একসাথে একাধিক thread এ কাজ করা।
তবে modern JavaScript (বিশেষ করে Node.js) এখন—

  • Child processes
  • Worker threads
  • Asynchronous & event-driven architecture

এর মাধ্যমে parallel execution হ্যান্ডেল করতে পারে।

👉 অর্থাৎ JavaScript নিজে multi-threaded না হলেও,
modern Node.js environment multi-threading support করে।

৩. Browser-based JavaScript সরাসরি low-level network operations যেমন raw TCP/IP sockets ব্যবহার করতে পারে না।
তবে Node.js ব্যবহার করলে socket, TCP, HTTP, WebSocket ইত্যাদি নিয়ে কাজ করা সম্ভব।


কিভাবে জাভাস্ক্রিপ্ট ব্যবহার করা যায়??

আপনার প্রজেক্টে জাভাস্ক্রিপ্ট ব্যবহার করার জন্য HTML ডকুমেন্টে <script> ট্যাগ include করতে হবে। আপনার সব জাভাস্ক্রিপ্ট কোড এই <script> ট্যাগ এর ভিতরে থাকবে। এছাড়া আপনি চাইলে <script> ট্যাগ এর ভিতরে src attribute এর মাঝে external JavaScript file link অ্যাড করতে পারবেন।

*উদাহরণস্বরূপ: *

//internal JavaScript
<script>
  // Your JavaScript code goes here
</script>

//adding external javaScript file 
<script src="scripts/main.js"></script>
Enter fullscreen mode Exit fullscreen mode

<script> ট্যাগ মূলত এইচটিএমএল ডকুমেন্টের <body> ট্যাগের একেবারে শেষে ব্যবহার করব যাতে এইচটিএমএল কন্টেন্টগুলো জাভাস্ক্রিপ্ট কোডের আগে লোড হয়।


কেন JavaScript Dynamically Typed Language??

জাভাস্ক্রিপ্ট একটা Dynamically Typed ল্যাঙ্গুয়েজ, এর মানে হচ্ছে যে জাভাস্ক্রিপ্টে আমরা একটা ভেরিয়েবলে বিভিন্ন ধরনের data রাখতে পারি। variable ডিক্লেয়ার করার সময় ডেটা টাইপ স্পেসিফাই করে দিতে হবে না, জাভাস্ক্রিপ্ট নিজেই data type ডিটেক্ট করতে পারে।

*উদাহরণ: *

কেন JavaScript Dynamically Typed Language??

উপরের উদাহরণে, আমরা x নামের একটি ভ্যারিয়েবল ডিক্লেয়ার করেছি এবং একটি সংখ্যা assign করেছি। পরবর্তীতে আমরা একই ভেরিয়েবলে অন্য ধরনের ডেটা টাইপ যেমন string এবং boolean value assign করেছি এবং এটা জাভাস্ক্রিপ্ট অনুমোদন দেয়।


জাভাস্ক্রিপ্ট কি JIT Compiled এবং Interpreted Language??

*JIT Compiled: *
জাভাস্ক্রিপ্ট কোড স্থানীয়ভাবে মেমোরি তে লোড হতে পারে এবং স্থানীয়ভাবে এক্সিকিউট হতে পারে কম্পাইল প্রক্রিয়ার মাধ্যমে। জাভাস্ক্রিপ্ট ইঞ্জিনের মধ্যে JIT কম্পাইলার থাকে, যা কোডটি রানটাইমে এক্সিকিউট হবার সাথে সাথে কোডটি কম্পাইল করে।
প্রোগ্রাম রান হওয়ার আগে, কোডটি machine code এ কম্পাইল হতে পারে, যাতে প্রোগ্রামটি দ্রুত চলতে পারে।

*Interpreted Language: *
জাভাস্ক্রিপ্ট একটি interpreted language. এটি
Interpreters প্রোগ্রামের সাহায্যে প্রতিটা লাইন বাই লাইন কমান্ড read করে এবং execute করে এবং সেজন্য এটা ফ্লেক্সিবল এবং মডিফাই করা সহজ।


এই ছিল আজকের জাভাস্ক্রিপ্ট এর বেসিক কিছু আলোচনা। পরবর্তীতে অন্য কোনদিন অন্য কোন টপিক নিয়ে হাজির হবো। হ্যাপি কোডিং🎉🎉

Top comments (0)