Click ★ if you like the project. Your contributions are heartily ♡ welcome.
অধ্যায় | বিষয় |
ব্যাসিক | জাভাস্ক্রিপ্টের আলু পাতা |
- জাভাস্ক্রিপ্ট একটি সিঙ্গেল-থ্রেডেড Asynchronous প্রোগ্রামিং ল্যাঙ্গুয়েজ।
- সিঙ্গেল-থ্রেডেড ল্যাঙ্গুয়েজ, তার মানে হল জাভাস্ক্রিপ্ট একসাথে একই সময়ে একটা মাত্র কাজ করতে পারে। Asynchronous বিষয়টা জাভাস্ক্রিপ্ট ল্যাঙ্গুয়েজের কোন বিষয় না, এটি নিয়ন্ত্রিত হয় ব্রাউজার Enviornment এর মাধ্যমে ।
- ১৯৯৫সালে নেটস্কেপের প্রকৌশলী Brendan Eich জাভাস্ক্রিপ্ট তৈরি করেন, যেটা মুক্তি পায় ১৯৯৬।
- JavaScript কে সংক্ষেপে JS নামে ডাকা হয়।
- এটি ওবজেক্ট-ওরিয়েন্টেড, ডায়নামিক প্রোগ্রামিং ভাষা।
- ECMA Script- European Computer Manufacturer’s Association. জাভাস্ক্রিপ্ট এর স্ট্যান্ডার্ড মেইনটেইন করে এবং Rules সেট করে।
- জাভাস্ক্রিপ্ট Unicode character set ব্যবহার করে।
- সকল জাভাস্ক্রিপ্ট আইডেন্টিফায়ার Case Sensitive.
- জাভাস্ক্রিপ্টে কোন "Integer" ধরণের টাইপ নাই । বাস্তবে integer গুলোকে ৩২-বিট ইন্টেজার ধরে নিয়ে কাজ করে জাভাস্ক্রিপ্ট।
- জাভাস্ক্রিপ্ট একটি ওবজেক্ট-ওরিয়েন্টেড, ডায়নামিকপ্রোগ্রামিংভাষা ।
- "Java" এবং "JavaScript" উভয় প্রোগ্রামিং ভাষাই Oracle কোম্পানির ট্রেডমার্ক হিসেবে নিবন্ধিত । জাভাস্ক্রিপ্টের সাথে Java programming language কে গুলিয়েফেলবেন না । এই দুই প্রোগ্রামিং ভাষার syntax এবং ব্যবহার একেবারেই আলাদা।
- JS ব্রাউজার ছাড়াও অন্যান্য জায়গায় ব্যবহার করা হয়, যেমন node.js and Apache CouchDB.
- জাভাস্ক্রিপ্ট এ যেকোন Function আসলে একেককটি অবজেক্ট ! ফাংশনে আপনি কোড রাখতে পারবেন, আরো পারবেন অবজেক্টের মত কোডের এক জায়গা থেকে আরেক জায়গায় পাস (pass) করাতে ।
- JavaScript হল prototype-based, multi-paradigm, supporting object-oriented, imperative, and declarative styles, ডায়নামিক প্রোগ্রামিং ভাষা ।
- জাভাস্ক্রিপ্টে কোড Left থেকে Right দিকে code এক্সিকিউশন করে Example: let ="javaScript"+15+16; Output: 'javaScript1516' let =15+16+"javaScript"; OutPut: '31javaScript'
- Library jQuery, Angular js-(RxJS), Json, React-(Flus, Redux, Mobx), Vue.js
- value সংরক্ষন করার কাজে ভ্যারিয়েবল ব্যবহার করা হয়।
- ভ্যারিয়েবলের মধ্যে মান রাখার জন্য সমান(=) চিহ্ন ব্যবহার করা হয় ।
- সকল ভ্যারিয়েবলগুলোকে স্ক্রিপ্টের প্রথমেই ঘোষণা করা প্রোগ্রামিং-এ ভাল অভ্যাস।
- var, let, const কিওয়ার্ডের মাধ্যমে জাভাস্ক্রিপ্টে ভ্যারিয়েবল ডিক্লেয়ার করা হয়।
- var/const/let কিওয়ার্ডের মাধ্যমে শুরু করুন এবং কমা(,) দ্বারা ভ্যারিয়েবলগুলো আলাদা করুন, সবশেষে সেমিকোলন(;) দিন
- ভ্যারিয়েবলে কোন ভ্যালু এসাইন না করলে সেটা Undefined টাইপ হয়ে বসে থাকে।
- জাভাস্ক্রিপ্ট ভ্যারিয়েবলকে পুনরায় ঘোষণা করলেও আগের মান হারায় না । var Name = "Satt"; var Name;
- জাভাস্ক্রিপ্ট কিওয়ার্ডগুলো সংরক্ষিত শব্দ যেগুলো ভ্যারিয়েবলের নামের জন্য ব্যবহার করা যাবেনা ।
- Null & Undefined data - আনডিফাইন্ড ভেরিয়েবল এবং ভেরিয়েবলের মান হিসেবে Null ব্যবহার করা হয় var tk = null; var tk = 100;
- false, 0, শূন্য স্ট্রিং (""), NaN, null, এবং undefined এগুলাকে বুলিয়ানে কনভার্ট করলে false পাওয়া যাবে । অন্য যেকোন টাইপের ভ্যলু বুলিয়ানে কনভার্ট করলে true পাওয়া যায়
- Falsey Value : false, 0, শূন্য স্ট্রিং (""), NaN, null, এবং Undefined
- tilde ( ~ ), back-tick (
) Uses:
I am $(varibleName) for React` ; - Variable এবং টেক্সট একসাথে লেখার নিয়ম
I am $(varibleName) for React
;
ভেরিয়েবল এসাইন্ড করার পদ্ধতি |
1. var a=2, var b=2, var c=2, var d=4; or a=b=c=2, d=4; 4. Replace হওয়ায় দুইটাই Undefine দেখাবে , Variable ()over right var ab=10, bc=20, cd; ab = cd; console.log(ab); // Undefined, console.log(cd); // Undefined |
আইডেন্টিফায়ার | সকলজাভাস্ক্রিপ্ট ভ্যারিয়েবল অবশ্যই একটি ইউনিক নামের মাধ্যমে সনাক্ত করতে হবে । এইই উনিক নাম গুলোকে আইডেন্টিফায়ার বলে । |
ভ্যারিয়েবল স্কোপ |
ভ্যারিয়েবল টা যেই ফাংশনে আছে, পুরা ফাংশনে এই ভ্যারিয়েবলের একটাই স্কোপ থাকে। তাই যদি কোন if বা লুপের মধ্যে কোন ভ্যারিয়েবল তৈরি করেন তাহলে পুরা ফাংশনেই সেটার স্কোপ থাকবে। 1. স্কোপ হলো আপনি এক্সেস করতে পারেন এমন ভ্যারিয়েবলের সেট। 2. আপনি এক্সেস করতে পারেন এমন ভ্যারিয়েবল, অবজেক্ট এবং ফাংশনের সেটকে জাভাস্ক্রিপ্টে স্কোপ বলা হয় । |
গ্লোবাল ভ্যারিয়েবল |
1. ফাংশনের বাইরে যে ভ্যারিয়েবলকে ডিক্লেয়ার করা হয় । 2. সকল স্ক্রিপ্ট এবং ফাংশন একে এক্সেস করতে পারে। 3. গ্লোবাল ভেরিয়েবল যে কোন স্ক্রিপ্ট বা ফাংশনে এক্সেস করা যাবে। |
স্বয়ংক্রিয়ভাবে গ্লোবাল |
1.যদি আপনি কোন ভ্যারিয়েবলকে ডিক্লেয়ার না করে ভ্যালু এসাইন করেন তাহলে ভ্যারিয়েবলটি সয়ংক্রিয়ভাবে একটি গ্লোবাল ভ্যারিয়েবলে পরিণত হবে।প্রয়োজন ছাড়া গ্লোবাল ভ্যারিয়েবল তৈরি না করাই উত্তম। |
HTML গ্লোবাল ভ্যারিয়েবল |
1. এইচটিএমএলে উইন্ডো অবজেক্ট হচ্ছে গ্লোবাল স্কোপ। সকল গ্লোবাল ভ্যারিয়েবল উইন্ডো অবজেক্টে অন্তর্গত থাকে। 2. গ্লোবাল ভ্যারিয়েবল(বা ফাংশন) উইন্ডো ভ্যারিয়েবলকে(বা ফাংশন) মুছে ফেলতে পারে। 3. উইন্ডো অবজেক্টসহ যেকোন ফাংশন, আপনার গ্লোবাল ভ্যারিয়েবল এবং ফাংশনকে মুছে ফেলতে পারে। |
ভ্যারিয়েবলের জীবনকাল |
1. ভ্যারিয়েবল ডিক্লেয়ার করা হলে এর জীবনকাল শুরু হয়। 2. ফাংশনের কার্য সম্পন্ন হলে লোকাল ভ্যারিয়েবল মুছে যায়। 3. ওয়েব পেজ বন্ধ করলে গ্লোবাল ভ্যারিয়েবল মুছে যায়। |
ফাংশন আর্গুমেন্ট |
ফাংশন আর্গুমেন্ট ফাংশন আর্গুমেন্ট (প্যারামিটার) ফাংশনের ভিতরে লোকাল ভ্যারিয়েবল হিসেবে কাজ করে । |
সাধারণ নিয়মগুলো |
0. নামের মধ্যে অক্ষর (x, y, z), ডিজিট (1, 2, 3), আন্ডারস্কোর (_) এবং ডলার($) চিহ্ন থাকতে পারে 2. নাম অবশ্যই Letter দিয়ে শুরু হবে । 3. $ এবং _ দিয়ে ও নাম শুরু হতে পারে । 4. নাম গুলো কেসসেন্সিটিভ (যেমন x এবং X দুটি আলাদা ভ্যারিয়েবল) সংরক্ষিত শব্দগুলোকে(যেমন- জাভাস্ক্রিপ্ট কিওয়ার্ড ) কখনো নাম হিসাবে ব্যবহার করা যাবে না । 5. জাভাস্ক্রিপ্ট আইডেন্টিফায়ার গুলো কেসসেন্সিটিভ। 6. same নামে একাধিক বার কোন ভেরিয়েবল var দিয়ে ডিক্লেয়ার করলে তার রিপ্লেস হয়ে যায়,সবার নিচে যে ভ্যারিয়েবেল টা থাকবে তার ভ্যালু দিয়ে রিপ্লেস হবে । |
- আইডেন্টিফায়ার সমূহ হচ্ছে নাম
- জাভাস্ক্রিপ্টে ভ্যারিয়েবল,কীওয়ার্ড এবং ফাংশনের নাম দেওয়ার জন্য আইডেন্টিফায়ার ব্যবহার করা হয়।
- .জাভাস্ক্রিপ্টে প্রথম ক্যারেক্টারটি অবশ্যই অক্ষর, আন্ডারস্কোর() অথবা ডলার($) চিহ্ন হবে।পরের ক্যারেক্টারগুলো অক্ষর(characters), সংখ্যা, আন্ডারস্কোর() অথবা ডলার($) চিহ্ন হতে পারে।
- প্রথম অক্ষরটি কখনো সংখ্যা হবে না।
Let | Const |
1. আমরা সাধারণত let এবং const ইউজ করব var টিকে আপাতত ইগনোর করবো , এটি একটি Best প্রেক্টিস বলা যেতে পারে । 2. let দিয়ে যে ভেরিয়েবল ডিক্লেয়ার করা হয় তার ভ্যালু একবারই ডিক্লার করতে হয়, কিন্তু var দিয়ে বারবার ডিক্লেয়ার করা যায় । 3. let and const যদি ব্লক এর মধ্যে ডিক্লেয়ার করা হয় তাহলে {} ব্লক এর বাইরে থেকে অ্যাক্সেস করা যাবে না, কিন্তু var দিয়ে যে ভেরিয়েবল ডিক্লেয়ার করা হবে তাকে বাইরে থেকে অ্যাক্সেস করা যাবে । 4. let দিয়ে যে ভেরিয়েবল Defined করা হবে same ভেরিয়েবল কে Redefined - পুনরায় ডিফাইন্ড করা যাবে না । let x=3, let x=10| আলাদা আলাদা ব্লকে Let দিয়ে সেই Defined করা যায় । { let x=2 },{let x=3}| 5. Re-declear করা যাবেনা but value সেট করা যাবে । let a, a=5;a=50; Note Allow:- let a,let a;| 6. Let ফাংশন ছাড়া কারলিব্রাস {} এর মধ্যে ডিক্লেয়ার করতে হবে । 7. Re-declear করা যাবে না বাট রি এসাইন্ড করা যাবে । |
0. let and const যদি ব্লক এর মধ্যে ডিক্লেয়ার করা হয় তাহলে {} ব্লক এর বাইরে থেকে অ্যাক্সেস করা যাবে না । 1. let এর ক্ষেত্রে let a,then values Assign a = 15 এইভাবে করা যাবে , কিন্তু const এর ক্ষেত্রে আলাদা আলাদাভাবে করা যাবে না, ডিক্লারেশন এবং এসাইন্ড একই সাথে করতে হবে const a, const a=20[Note Allowed ] , const a=5;| 2. var এবং let হোস্টেড হয় কিন্তু var অ্যাসাইন করে undefined করে রাখে কিন্তু let সেটা করেনা আন ডিফারেন্ট সেট করে না । 3. Re-assigned করা যাবে না রিডিক্লেয়ার করা যাবে না, সেম নামে ডিফারেন্ট স্কূপে ব্যবহার করতে পারবেন । 4. হোস্টেড হয় কিন্তু undefined সেট করে না । |
- let, const function scoped হওয়ায় এদের নিজস্ব ফাংশনের বাইরে থেকে অ্যাক্সেস করা যায়না ।
function test() { let a = 1; const b = 2; } console.log(a, b); // ReferenceError
-
আবার এরা block scoped হওয়ায় test ফাংশনের ভেতর থাকার পরেও reference error দিবে ।
function test() { { let a = 1; const b = 2; } console.log(a, b); } test(); // ReferenceError -
const এ ভ্যালু reassign করা যায়না। কিন্তু const variable এ থাকা object এর ভ্যালু আপডেট করা যায়। কারণ const, ভ্যারিয়েবলের reference\memory address ধরে রাখে, ভ্যালু না। reassign মানে নতুন reference অ্যাসাইন করা। নিচের কোড type error দিবে কারণ এখানে সরাসরি a এর reference পাল্টানোর চেষ্টা করা হয়েছে ।
const a = 1; a = 2; // TypeError
var | Let | Const | |
Stored in Global Scope | Yes | No | No |
Function Scoped | Yes | Yes | Yes |
Block Scoped | No | Yes | Yes |
Reassignable | Yes | Yes | No |
Redeclarable | Yes | No | No |
Can be Hoisted | Yes | No | No |
Hoisting Behavior | Initialized with undefined | Uninitialized | Uninitialized |
জাভাস্ক্রিপ্টে সিঙ্গেল quote অথবা ডাবল quote ব্যবহার করে স্ট্রিং অপারেশন অথবা স্ট্রিং এ কোনো ভ্যারিয়েবলক লিখতে চাইলে ‘+’ সাইন ব্যবহার করলে যে সমস্যাগুলা তৈরী হয়, সেগুলা সলভ করার জন্য quote এর জায়গায় ` (ব্যাকটিক ওর একিউট সিম্বল) ব্যবহার করাকে, এবং ভ্যারিয়েবলকে ${} এর ভেতর লেখাকে Template Literal বলে ।
console.log(My name is ${name} and I\’m ${age}years old! Currently I\’m a ${work}
);
এখানে খেয়াল করলে আমরা বুঝতে পারবো, Template Literal ব্যাপারটাকে কত সহজ করে ফেলেছে। এমনকি Template Literal এর ভেতরে আমরা Arithmetic অপারেশন এবং মেথডস ও ব্যবহার করতে পারি ।
জাভাস্ক্রিপ্ট এ কারলি ব্রাকেট এর ভিতর name-value pair করে অবজেক্ট বানানোকে Object Literal বলে। যেমন:
let jaberInfo = {‘name’: ‘Jaber Al Nahian’, ‘company’: ‘Dhaka Ltd’}
উপরে Object Literal সিনটেক্স ব্যবহার করে একটি Object ডিক্লেয়ার করা হয়েছে। আর তাছাড়াও অবজেক্ট ডিক্লেরেশন আরো অনেক ভৱে করা যায়, যেমন:
let newObj = new Object();
let newObj = {};
যখন আমরা একটি অবজেক্ট অথবা array এর sub-item গুলোকে অন্য ভ্যারিয়েবল এ এসাইন করি, তখন যদি আমরা চাই শুধু কিছু নির্দিষ্ট আইটেম কে নিতে, সেটা Destructuring Assignment এর মাধ্যমে সম্ভব। যদিও সেটা ডট অপারেটর দিয়ে করা যায়। যেমন:
const companyInfo = {
name: “Dhaka”,
service: “Software Development”,
loc: “Dhaka, BD”,
};
const { name: companyName, loc: companyLocation } = companyInfo;
console.log(companyName); // Dhaka
console.log(companyLocation); // Dhaka, BD
Lowercase – Bangladesh , Uppercase – BANGLADESH , CamelCase – banglaDesh
প্রোগ্রামাররা একের অধিক শব্দকে এক শব্দে লেখার জন্য সচারচর তিনটি পদ্ধতি ব্যবহার করে
হাইফেন(-) first-name, last-name, master-card, inter-city
আন্ডারস্কোর(_) first_name, last_name, master_card, inter_city
ক্যামেল কেস FirstName, LastName, MasterCard, InterCity ক্যামেল কেস ছোট হাতের অক্ষর দিয়ে শুরু হয় firstName, lastName, masterCard, interCity.
- এক্সেস করতে পারে এমন ভ্যারিয়েবলের সেট।
- ফাংশনের মধ্যে স্কোপ পরিবর্তিত হয়।
- ভ্যারিয়েবলের জীবনকাল
A. জাভাস্ক্রিপ্ট ভ্যারিয়েবল ডিক্লেয়ার করা হলে এর জীবনকাল শুরু হয়।
B. ফাংশনের কার্য সম্পন্ন হলে লোকাল ভ্যারিয়েবল মুছে যায়।
C. ওয়েব পেজ বন্ধ করলে গ্লোবাল ভ্যারিয়েবল মুছে যায়।
- Block scope
- Function scope
- Global scope
Block scope | Function scope | Global scope |
Let and cosnt block scope { let x = 2; } |
0. ফাংশনের মধ্যে যে ভ্যারিয়েবল ডিক্লেয়ার করা হয় তাকে লোকাল ভ্যারিয়েবল বলে। যা শুধুমাত্র ফাংশনের মধ্যেই এক্সেস করা সম্ভব। 2. যেহেতু লোকাল ভ্যারিয়েবল শুধুমাত্র একটি ফাংশনের ভিতরে এক্সেস করা যায়, তাই একই নামের ভ্যারিয়েবল বিভিন্ন ফাংশনের ভিতরে ব্যবহার করা যেতে পারে। 3. যখন ফাংশনকে কল করা হয় তখন লোকাল ভ্যারিয়েবল তৈরি হয় এবং ফাংশনের কাজ সম্পন্ন হলে লোকাল ভ্যারিয়েবলগুলো ডিলেট হয়ে যায়। ফাংশন আর্গুমেন্ট (প্যারামিটার ) ফাংশনের ভিতরে লোকাল ভ্যারিয়েবল হিসেবে কাজ করে। |
0. var গ্লোবাল স্কোপ , ফাংশন ছাড়া যে কোন জায়গায় var লিখলে এটি গ্লোবাল scope থাকে । 1. ফাংশনের বাইরে যে ভ্যারিয়েবলকে ডিক্লেয়ার করা হয় তাকে গ্লোবাল ভ্যারিয়েবল বলে। 3. ওয়েব পেজের সকল স্ক্রিপ্ট এবং ফাংশন একে এক্সেস করতে পারে। 4. প্রয়োজন ছাড়া গ্লোবাল ভ্যারিয়েবল তৈরি না করাই উত্তম। "Strict Mode" এ স্বয়ংক্রিয়ভাবে গ্লোবাল ভ্যারিয়েবলকে এড়িয়ে চলা হয়। গ্লোবাল ভ্যারিয়েবল(বা ফাংশন) উইন্ডো ভ্যারিয়েবলকে(বা ফাংশন) মুছে ফেলতে পারে। উইন্ডো অবজেক্টসহ যেকোন ফাংশন, আপনার গ্লোবাল ভ্যারিয়েবল এবং ফাংশনকে মুছে ফেলতে পারে। |
Tow Types of Data
-
Primitive Data
-
Composite/complex data types
-
ধরনের ডাটা টাইপ রয়েছে যাদের ভ্যালু নেইঃ - Null, Undefined
-
ধরনের ডাটা টাইপ রয়েছে যাদের মধ্যে ভ্যালু থাকে String, number, boolean, object, function
-
অবজেক্ট 6 ধরনের হয় Object ,Date, Array, String, Number, Boolean
String - 'single quit'Or"Double quit "
Number- 1,2,45,1.3,3.4, 102,22
Boolean- True, false
Undefined, Null, Empty Values
Object, function, Array, Date ,RegExp
typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof NaN // Returns "number" typeof false // Returns "boolean" typeof [1,2,3,4] // Returns "object" typeof {name:'John', age:34} // Returns "object" typeof new Date() // Returns "object" typeof function () {} // Returns "function" typeof myCar // Returns "undefined" * typeof null // Returns "object" NB: javascript এ function এর type হচ্ছে object কিন্তু typeof() করলে তারা টাইপ function দেখাবে Data Type of typeof : 1. এটি একটি operator , অপারেটরদের ( + - * / ) কোনো Data type নেই। 2. typeof() অপারেটর একটি variable নয়। 3. typeof অপারেটর সর্বদা একটি স্ট্রিং Return করে । |
NaN type number array type object date type object null type object object type object undefined variable type undefined not assigned type undefined |
NonePremetive | Premetive |
0. এদের মাঝে মৌলিক পার্থক্য হচ্ছে যে প্রিমিটিভ ডাটা immutable বা অপরি বর্তনীয় এবং নন-প্রিমিটিভ ডাটা mutable বা পরিবর্তনীয়। 1.প্রমিটিভ ডাটা immutable বা অপরি বর্তনীয় ডাটা টাইপ হিসাবে পরিচিত কারণ এই ডাটা একবার তৈরি হয়ে গেলেএটি পরিবর্তন করার কোন পথ নেই। 2.প্রিমিটিভ ডাটাটাইপ গুলোএকেঅপরের সাথে তাদের ভ্যালু দ্বারা তুলনা করে। 3.যখন আমরা কোন প্রিমিটিভ ডাটা টাইপকে অন্য কোন ভেরিয়েবলে অ্যাসাইন করি, তখন তার ভ্যালু কপি হয়ে নতুন ভেরিয়েবলে অ্যাসাইন হয়। | 1. নন-প্রিমিটিভ ডাটা mutable বা পরিবর্তনীয়। 2. একটি অবজেক্ট তৈরি হয়ে যাওয়ার পরে ও অবজেক্টের ভ্যালু পরিবর্তন হতে পারে 3. যখন কোন নন-প্রিমিটিভ ডাটা তৈরি করি, তখন সেই ডাটার জন্যে মেমোরিতে একটা অ্যাড্রেস তৈরি হয় এবং সেই অ্যাড্রেসটা কেমনে রেখে কোন এক জায়গায় ভ্যালু গুলোকে স্ট্রোর করে রাখে।তার পর আমাদের যখন দরকার পরে তখন সে ঐ অ্যাড্রেস কে কল করে এবং আমাদের ডাটা প্রদান করে। 4. নন-প্রিমিটিভ বারে ফারেন্স ডাটাগুলো সব সময় তাদের রেফারেন্স পাস করে।যখন আমরা কোন রেফারেন্স ডাটাকে অন্য কোন ভেরিয়েবলে অ্যাসাইন করি, তখন তার রেফারেন্স কপি হয়।মানে arr1 কেযখনআমরা arr2 তে অ্যাসাইন করি তখন তার রেফারেন্স বা অ্যাড্রেসটাকে কপি করে বাম নেরাখেতার ভ্যালুকেনা।তাই দুইটা ভেরিয়েবলের অ্যাড্রেস একই থাকে।তাই যখন আমরা কোন একটি ভেরিয়েবলের ভ্যালু পরিবর্তন করি, তখন দুইটা ভেরিয়েবলের ইভ্যালু পরিবর্তন হয়ে যায়। |
- জাভাস্ক্রিপ্ট ভ্যারিয়েবলকে একটি নতুন ভ্যারিয়েবল এবং অন্য ডাটা টাইপে রূপান্তরিত যায় ,
ফাংশন ব্যবহার করে , Automatically/স্বয়ংক্রিয়ভাবে জাভাস্ক্রিপ্টের মাধ্যমে
Original Value | Converted Number | Converted String | Converted Boolean |
false | 0 | "false" | false |
true | 1 | "true" | true |
0 | 0 | "0" | false |
1 | 1 | "1" | true |
"0" | 0 | "0" | true |
"000" | 0 | "000" | true |
"1" | 1 | "1" | true |
NaN | NaN | "NaN" | false |
Infinity | Infinity | "Infinity" | true |
-Infinity | -Infinity | "-Infinity" | true |
"" | 0 | "" | false |
"20" | 20 | "20" | true |
"twenty" | NaN | "twenty" | true |
[] | 0 | "" | true |
[20] | 20 | "20" | true |
[10,20] | NaN | "10,20" | true |
["twenty"] | NaN | "twenty" | true |
["ten","twenty"] | NaN | "ten,twenty" | true |
function(){} | NaN | "function(){}" | true |
- string কে Double Quotation অথাবা Single Quotation এরভিতরেরাখতেপারি var a = "Tasnim";
- যে কোন ডাটা টাইপ এর ডাটা রাখা যায় ।
3.স্ট্রিংয়ের মধ্যে বিশেষ অক্ষর ব্যবহার করতে চাইলে আপনাকে ব্যাকস্ল্যাশ() ব্যবহার করতে হবেঃ
length | slice() | substring() | substr() | concat() | padStart() |
replace() | replaceAll() | toUpperCase() | toLowerCase() | padEnd() | trim() |
trimStart() | trimEnd() | charCodeAt() | charAt() | split() |
indexOf() | lastIndexOf() | search() |
match() | matchAll() | includes() |
startsWith() | endsWith() |
indexOf() | lastIndexOf() | search() |
match() | matchAll() | includes() |
startsWith() | endsWith() |
anchor() | big() | blink() | bold() | link() |
fixed() | fontcolor() | fontsize() | italics() | |
small() | strike() | sub() | sup() |
Escape Sequence | Result | |
---|---|---|
\' | ' | Single quote |
\" | " | Double quote |
\\ | \ | Backslash |
\n | (new line) | New line |
\r | (carriage return) | Carriage return |
\t | (tab space) | Tab space |
\b | (backspace) | Backspace |
\f | (form feed) | Form feed |
- সকল স্ট্রিং মেথডই একটি নতুন স্ট্রিং রিটার্ন করে। তারা মূল স্ট্রিংকে পরিবর্তন করে না।
- স্ট্রিং অপরিবর্তনীয়ঃ স্ট্রিংগুলো পরিবর্তন করা যাবে না শুধুমাত্র প্রতিস্থাপন করা যায়।
- স্ট্রিংকে অ্যারের মত করে এক্সেস করা নিরাপদ নয় , আপনি হয়তো স্ট্রিংকে অ্যারের মত করে এক্সেস করা দেখতে পারেন , যদি আপনি একটি স্ট্রিংকে অ্যারে আকারে পড়তে চান, প্রথমে একে অ্যারেতে রূপান্তর করুন।
Method | Description |
---|---|
Length() | একটি স্ট্রিংয়ের দৈর্ঘ্য নির্ধারন করে। স্ট্রিংটি কয়টি ক্যারেক্টার নিয়ে গঠিত তা রিটার্ন করে। |
charAt() | স্ট্রিং ক্যারেক্টারকে ভাগ করার দুইটি পদ্ধতি রয়েছেঃ 1. charAt(position) 2. charCodeAt(position) নির্দিষ্ট ইনডেক্স(পজিশনের) ক্যারেক্টারকে রিটার্ন করে। |
charCodeAt() | নির্দিষ্ট ইনডেক্সের ক্যারেক্টারের ইউনিকোড রিটার্ন করে। |
concat() | স্ট্রিংকে যুক্ত করে এবং একটি নতুন স্ট্রিং তৈরি করে। |
endsWith() | একটি স্ট্রিং নির্দিষ্ট স্ট্রিং বা ক্যারেক্টার দিয়ে শেষ হয় কিনা তা চেক করে। |
fromCharCode() | ইউনিকোড ভ্যালুকে ক্যারেক্টারে পরিনত করে। |
includes() | একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট স্ট্রিং বা ক্যারেক্টার আছে কিনা তা চেক করে। |
indexOf() | একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট একটি ভ্যালুর প্রথম পজিশন রিটার্ন করে। |
lastIndexOf() | একটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট একটি ভ্যালুর শেষ পজিশন রিটার্ন করে। |
localeCompare() | দুইটি স্ট্রিংয়ের মধ্যে তুলনা করে। |
match() | একটি রেগুলার এক্সপ্রেশনে একটি স্ট্রিং খুজে বের করে এবং রেজাল্ট দেখায়। |
repeat() | স্ট্রিংকে পরিবর্তন করে না। এটা নতুন একটি স্ট্রিং রিটার্ন করে। |
replace() | একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট ভ্যালু অথবা একটি রেগুলার এক্সপ্রেশন খুজে বের করে, তা প্রতিস্থাপন করে এবং যেখানে নির্দিষ্ট ভ্যালু প্রতিস্থাপিত হয়েছে তার একটি নতুন স্ট্রিং তৈরি করে। |
search() | একটি স্ট্রিংয়ের মধ্য়ে একটি নির্দিষ্ট ভ্যালু অথবা একটি রেগুলার এক্সপ্রেশন খুজে বের করে এবং তার পজিশন রিটার্ন করে। |
slice() | স্ট্রিংয়ের একটি অংশকে ভাগ করে এবং বিভক্ত অংশটিকে নতুন একটি স্ট্রিংয়ে রিটার্ন করে। মেথডটি দুইটি প্যারামিটার গ্রহন করে: শুরুর অবস্থান(start index) এবং শেষের অবস্থান(end index)। |
split() | একটি স্ট্রিংকে অ্যারেতে রূপান্তরিত করা যেতে পারে। |
startsWith() | একটি স্ট্রিং নির্দিষ্ট ক্যারেক্টার দিয়ে শুরু হয়েছে কিনা তা চেক করে। |
substr() | মেথডটি slice() মেথডের মতই। পার্থক্য হচ্ছে দ্বিতীয় প্যারামিটারটিতে কতটি ক্যারেক্টার ভাগ করতে চান তা উল্লেখ করতে হবে। |
substring() | মেথডটি slice() মেথডের মতই। পার্থক্য হচ্ছে substring() মেথড ঋনাত্মক ইন্ডেক্স ভ্যালু গ্রহণ করে না। |
toLocaleLowerCase() | লোকাল হোস্টের উপর ভিত্তিকরে স্ট্রিং কে ছোট হাতের অক্ষরে(lower case) রপান্তর করে। |
toLocaleUpperCase() | লোকাল হোস্টের উপর ভিত্তিকরে স্ট্রিং কে বড় হাতের অক্ষরে(Upper case) রপান্তর করে। |
toLowerCase() | একটি স্ট্রিংকে ছোট হাতের অক্ষরে রপান্তর করে। |
toString() | স্ট্রিং অবজেক্টের ভ্যালু রিটার্ন করে। |
toUpperCase() | স্ট্রিংকে বড় হাতের অক্ষরে রপান্তর করে। |
trim() | একটি স্ট্রিংয়ের উভয়দিকের স্পেস মুছে দেয়। |
valueOf() | একটি স্ট্রিং অবজেক্টের প্রিমিটিভ ভ্যালু রিটার্ন করে। |
Method | Description |
---|---|
anchor() | অ্যাংকর তৈরি করে। |
big() | স্ট্রিংয়ের ফন্টের আকার বড় করে প্রদর্শন করে। |
blink() | ব্লিংকিং স্ট্রিং প্রদর্শন করে। |
bold() | স্ট্রিংকে বোল্ড করে প্রদর্শন করে। |
fixed() | fixed-pitch ফন্ট ব্যবহার করে একটি স্ট্রিং প্রদর্শন করে। |
fontcolor() | নির্দিষ্ট কালার ব্যবহার করে স্ট্রিং প্রদর্শন করে। |
fontsize() | নির্দিষ্ট সাইজ ব্যবহার করে স্ট্রিং প্রদর্শন করে। |
italics() | স্ট্রিংকে ইতালিক অক্ষরে প্রদর্শন করে। |
link() | স্ট্রিংকে হাইপার লিংক হিসেবে প্রদর্শন করে। |
small() | ছোট ফন্ট ব্যবহার করে একটি স্ট্রিং প্রদর্শন করে। |
strike() | স্ট্রিংয়ের মাঝে দাগ কেটে স্ট্রিংকে প্রদর্শন করে। |
sub() | স্ট্রিংয়ের টেক্সটকে সাবস্ক্রিপ্ট টেক্সট হিসেবে প্রদর্শন করে। |
sup() | স্ট্রিংয়ের টেক্সটকে সুপারস্ক্রিপ্ট টেক্সট হিসেবে প্রদর্শন করে। |
- জাভাস্ক্রিপ্টে স্ট্রিংয়ের অবস্থান শূন্য থেকে গণনা করা হয়।
- স্ট্রিং-এ ০(শূন্য) হচ্ছে প্রথম অবস্থান, ১ হচ্ছে দ্বিতীয় অবস্থান আর ২ হচ্ছে তৃতীয় অবস্থান এবং এইভাবে চলতে থাকে।
- উভয় মেথডই দ্বিতীয় একটি প্যারামিটার গ্রহণ করে।
indexOf() | মেথডটি একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট টেক্সটের প্রথম অবস্থান রিটার্ন করেঃ |
lastIndexOf() | মেথডটি একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট টেক্সটের শেষ অবস্থান রিটার্ন করেঃ যদি টেক্সটটি না পাওয়া যায় indexOf() এবং lastIndexOf() উভয় মেথডই -1 রিটার্ন করে। |
search() | indexOf() এবং search() উভয় মেথড একই। মেথডটি একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট ভ্যালু অনুসন্ধান করে। তারা উভয়ই একই আর্গুমেন্ট(arguments) বা প্যারামিটার ভ্যালু গ্রহন করে এবং একই মান রিটার্ন করে। দুটি মেথড একই, কিন্তু search() মেথডটি অনেক বেশি শক্তিশালী। |
Backslash (\) | স্ট্রিংয়ের মধ্যে বিশেষ অক্ষর ব্যবহার করতে চাইলে আপনাকে ব্যাকস্ল্যাশ(\) ব্যবহার করতে হবে। উদাহরণ: var a = "Welcome To \"Satt\" Academy" (Output: Welcome To "Satt" Academy) |
replace() | মেথডটি স্ট্রিংয়ের নির্দিষ্ট একটি মানকে অন্য একটি ভ্যালু দ্বারা প্রতিস্থাপন করে। replace() মেথড অনুসন্ধান ভ্যালু হিসাবে রেগুলার এক্সপ্রেশনও নিতে পারে। স্বাভাবিকভাবে replace() মেথডটি অনুসন্ধানকৃত অংশকে প্রথম যেখানে পাবে তাকেই প্রতিস্থাপন করবে। যদি সবগুলোকে প্রতিস্থাপন করতে চান সেক্ষেত্রে রেগুলার এক্সপ্রেশনের g ফ্ল্যাগ(গ্লোবাল সার্চের জন্য) ব্যবহার করতে হবেঃ |
object | স্ট্রিংকে অবজেক্টে হিসেবেও ডিফাইন করা যায়ঃ var b = new String("Tamim")। স্ট্রিংকে অবজেক্ট হিসাবে তৈরি করবেন না। এটি এক্সিকিউশনের গতিকে ধীর করে দেবে। স্ট্রিং এবং অবজেক্টের সাথে কখনো তুলনা করা ঠিক নয়। |
Dynamic Data Type | একই ভ্যারিয়েবলে বিভিন্ন টাইপের ডাটা রাখা যায়। উদাহরণ: var a; // এখানে a হচ্ছে undefined; var a = 9; // এখানে a হচ্ছে সংখ্যা (Number); var a = "Tamim"; // এখানে a হচ্ছে স্ট্রিং (String) |
JS Boolean | বুলিয়ানের শুধুমাত্র দুইটি মান থাকে: true অথবা false। 0 দ্বারা false এবং 1 দ্বারা True নির্দেশিত হয়। বুলিয়ান টাইপ ডাটা বাইনারি ডাটাকে বোঝায়। Condition Test করার জন্য প্রায়ই বুলিয়ান ব্যবহার করা হয়। Boolean() ব্যবহার করে একটি এক্সপ্রেশন সত্য কিনা যাচাই করা যেতে পারে। উদাহরণ: Boolean(4 > 2); Boolean(4); (number ) True; Boolean( {} ); True; Boolean( [] ); True; Boolean(""); false; Boolean("dhjj"); Boolean(NaN); |
typeof Operator | typeof অপারেটর দ্বারা ভ্যারিয়েবল, অবজেক্ট, ফাংশন, অথবা এক্সপ্রেশন এর টাইপ বুঝায়। উদাহরণ: typeof "Tahmid" // string; typeof 3.14 // number; typeof a // undefined; typeof false // boolean; typeof new Date() // object |
Empty Values | খালি মান(value) এবং অসজ্ঞায়িত দুটি ভিন্ন জিনিস। খালি স্ট্রিং-এর ভ্যালু এবং টাইপ(type) দুইটাই থাকে। উদাহরণ: var member = " "; // typeof হচ্ছে string |
Null | জাভাস্ক্রিপ্টে null দ্বারা বুঝায় "কিছুই না"। এটি বোঝায় যে, কোনো অস্তিত্ব নাই। জাভাস্ক্রিপ্টে, null এর ডাটা টাইপ হচ্ছে অবজেক্ট(object)। typeof null // মান হচ্ছে null, কিন্তু টাইপ এখনো অবজেক্ট। |