Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • JavaScript Documentation48টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • JavaScript কী?
  • Syntax & Comments
  • Variables
  • Data Types: Basics
  • Data Types: Conversion
  • Data Types: Advanced
  • Strings
  • Numbers & Math
  • Date & Time
  • Operators
  • Conditions
  • Loops
  • Functions: Basics
  • Functions: Intermediate
  • Functions: Advanced
  • Scope & Hoisting
  • Closures & this
  • ES6+ Modern
  • Arrays: Basics
  • Arrays: Intermediate
  • Arrays: Advanced
  • Objects: Basics
  • Objects: Intermediate
  • Objects: Advanced
  • Class: Basics
  • Class: Intermediate
  • Class: Advanced
  • DOM: Basics
  • DOM: Intermediate
  • DOM: Advanced
  • Events: Basics
  • Events: Intermediate
  • Events: Advanced
  • Async JavaScript
  • Promise
  • Async / Await
  • Fetch API
  • JSON
  • Modules
  • Browser Storage
  • Event Loop Deep
  • Prototype Chain
  • Iterators & Generators
  • WeakMap, WeakSet, Proxy
  • Error Handling
  • Practice Problems
  • Mini Projects
  • Basics
  • Functions & Scope
  • Types & Syntax
  • Arrays & Objects
  • Advanced
  • Functional Programming
  • Objects & Symbols
  • Async Deep Dive
  • Modern JavaScript
  1. Docs
  2. JavaScript
  3. JavaScript Data Types: Type Conversion
JavaScriptIntermediate

JavaScript Data Types: Type Conversion

Type conversion ও coercion — String()/Number()/Boolean(), explicit vs implicit, strict equality — বাংলায়।

23টি অংশবাংলা ভাষায়

প্রোগ্রামে প্রায়ই এক টাইপ থেকে অন্য টাইপে মান বদলাতে হয়। দুই পথ: conversion (সচেতন, explicit) ও coercion (জাভাস্ক্রিপ্টে নিজে-নিজে, implicit)।

Explicit conversion — String()

const num = 42;
const str = String(num);

console.log(str);          // "42"
console.log(typeof str);   // "string"

console.log(String(true));        // "true"
console.log(String(null));        // "null"
console.log(String(undefined));   // "undefined"

Number()

console.log(Number("42"));     // 42
console.log(Number("42px"));    // NaN
console.log(Number(true));      // 1
console.log(Number(false));     // 0
console.log(Number(null));      // 0
console.log(Number(undefined)); // NaN
console.log(Number(""));        // 0

Number() মান না পারলে NaN দেয়। খালি string 0 হয় আর undefined হয় NaN — এই দুইটা সতর্ক থাকার জায়গা।

Boolean()

console.log(Boolean(0));        // false
console.log(Boolean(""));       // false
console.log(Boolean(null));     // false
console.log(Boolean(undefined));// false
console.log(Boolean(NaN));      // false

console.log(Boolean("বাংলা")); // true
console.log(Boolean(42));      // true
console.log(Boolean([]));      // true
console.log(Boolean({}));      // true

Boolean() এ শুধু falsy মানগুলো false দেয়: 0, "", null, undefined, NaN, false। বাকি সব true — খালি array/object-ও।

Implicit coercion কী

Coercion হলো জাভাস্ক্রিপ্ট নিজে থেকে টাইপ বদলে ফেলা। + অপারেটরের সামনে string থাকলে + জোড়া লাগায়, কিন্তু -, *, / সংখ্যা বানাতে চায় — তাই একই মানে ভিন্ন ফল! এই পার্থক্যই সবচেয়ে বেশি bug জন্মায়।

console.log("5" + 3);   // "53"  (string জোড়া)
console.log("5" - 3);   // 2     (number)
console.log("5" * 3);   // 15
console.log("5" + null); // "5null"
console.log("5" + true);// "5true"

console.log(5 == "5");   // true  (coercion দিয়ে তুলনা)
console.log(5 === "5");  // false (টাইপও মেলে)

strict equality ব্যবহার করুন

// == coercion করে, === করে না
console.log(0 == false);    // true  ❌
console.log(0 === false);   // false ✓
console.log("" == false);   // true  ❌
console.log("" === false);  // false ✓

// NaN কারও সমান নয়
console.log(NaN === NaN);   // false
console.log(Number.isNaN("x")); // true — নিরাপদ চেক

সবসময় `===` / `!==` ব্যবহার করুন। ==-র coercion নিয়ম মুখস্থ রাখা কঠিন — অভ্যাসেই strict operator ধরুন।

Number.isNaN বনাম isNaN

console.log(isNaN("hello"));  // true  ❌ (coercion করে)
console.log(Number.isNaN("hello")); // false ✓ (টাইপ চেক)

console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(42));   // false

জরুরি conversion কৌশল

const value = "123";

const withPlus = +value;      // 123  (unary +)
const withParseInt = parseInt(value, 10); // 123
const withParseFloat = parseFloat("3.99"); // 3.99
const withNumber = Number(value);          // 123

console.log(typeof withPlus); // "number"

+value ছোট্ট ট্রিক, parseInt(value, 10)-এ base 10 দেওয়া নিরাপদ। টেক্সটের ভেতরে সংখ্যা থাকলে ("42px") parseInt কাজ করে, Number() করে না।

লক্ষ্যকৌশলনোট
number → stringString(n) / n.toString()
string → numberNumber(s), +s, parseInt, parseFloatparseInt text-ভিতরে মান পায়
anything → booleanBoolean(x), !!xfalsy সেট চেনা জরুরি
array চেকArray.isArray(x)typeof এ object
NaN চেকNumber.isNaN(x)global isNaN-কে এড়িয়ে চলুন
Bug-এর উৎস coercion

+ দিয়ে string জোড়া, - দিয়ে number — এই অসমতা ধরতে না পারলে অপ্রত্যাশিত ফল আসবে। === ব্যবহার করে, String()/Number() দিয়ে সচেতনভাবে convert করুন।

চর্চা করুন

"10" + 5, "10" - 5, Number(null), Boolean("false") — কনসোলে চালিয়ে আগে নিজে উত্তর ভাবুন, তারপর মিলিয়ে দেখুন।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরJavaScript Data Types: Basics (ডেটা টাইপ)পরেরJavaScript Data Types: Advanced
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com