Tag Archives: অবজেক্ট

Node.js – সার্বজনীন অবজেক্ট (Global Objects)

Huge Sell on Popular Electronics

মোহাম্মদ আব্দুল্লাহ

Node.js এর গ্লোবাল অবজেক্টগুলো সাধারনত সকল মোডিউল থেকে সরাসরি একসেস করা যায় । তাই এই গ্লোবাল অবজেক্টগুলোকে কোন অ্যাপ থেকে অন্তর্ভূক্ত করতে হয় না । এই গ্লোবাল অবজেক্টগুলো সাধারনত মোডিউল, ফাংশন, স্ট্রীং অথবা অবজেক্টও হয়ে থাকে যা নিম্নে ব্যাখ্যা করা হয়েছে ।

__filename

__filename, যেই ফাইল থেকে কোড রান করা হচ্ছে সেই ফাইলের নাম প্রকাশ করে থাকে । এটি কোড ফাইলের সম্পূর্ণ পথ প্রিন্ট করে থাকে ।

উদাহরণ
একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


console.log( __filename );

 

এখন main.js ফাইলটি রান করান


$ node main.js

 

আপনার প্রোগ্রামের সঠিক অবস্থান অনুযায়ী নিম্নের ফাইল নাম প্রকাশ করবেঃ


/web/com/1427091028_21099/main.js

 

__dirname

__dirname সাধারনত যেই ডিরেক্টরী থেকে স্ক্রীপ্ট রান করা হচ্ছে ওই ডিরেক্টরীর নাম প্রকাশ করে থাকে ।

উদাহরণ
একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


console.log( __dirname );

 

এখন main.js ফাইলটি রান করান


$ node main.js

 

আপনার প্রোগ্রামের সঠিক অবস্থান অনুযায়ী নিম্নের ডিরেক্টরীর নাম প্রকাশ করবেঃ


/web/com/1427091028_21099

 

 

setTimeout(cb, ms)

setTimeout(cb, ms) গ্লোবাল ফাংশন দিয়ে অন্তত ' ms ' মিলিসেকেন্ড বিলম্বে কলব্যাক ফাংশন ' cb ' কে কল করা হয়ে থাকে । এই বিলম্ব কিছু বাহ্যিক ফাক্টর এর উপর নির্ভরশীল উদাহারন স্বরুপ OS timer granularity এবং system load । একটি টাইমারের ব্যাপ্তি ২৪.৮ দিনের বেশী হতে পারবে না ।

উদাহরণ
একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


function printHello(){
     console.log( "Hello, World!");
 }
 // Now call above function after 2 seconds
 setTimeout(printHello, 2000);

 

এখন main.js ফাইলটি রান করান


$ node main.js

 

যাচাই করে দেখুন আউটপুট কিছুটা বিলম্বে আসছে কিনা


Hello, World!

 

clearTimeout(t)

clearTimeout( t ) গ্লোবাল ফাংশন দিয়ে পূর্বে setTimeout(cb, ms) দিয়ে যেই টাইমার সেট করা হয়েছে তা বন্ধ করতে ব্যবহার করা হয় ।

উদাহরণ
একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


function printHello(){
       console.log( "Hello, World!");
 }
 // Now call above function after 2 seconds
 var t = setTimeout(printHello, 2000);
 // Now clear the timer

 

clearTimeout(t)

এখন main.js ফাইলটি রান করান


$ node main.js

যাচাই করে দেখুন আউটপুটে কিছু প্রিন্ট করছে কিনা

 

setInterval(cb, ms)

setInterval(cb, ms) দিয়ে অন্তত ' ms ' মিলিসেকেন্ড বিলম্বে বারবার কলব্যাক ফাংশন ' cb ' কে কল করতে থাকে । এই বিলম্ব কিছু বাহ্যিক ফাক্টর এর উপর নির্ভরশীল উদাহারন স্বরুপ OS timer granularity এবং system load । একটি টাইমারের ব্যাপ্তি ২৪.৮ দিনের বেশী হতে পারবে না ।

একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


function printHello(){
     console.log( "Hello, World!");
 }
 // Now call above function after 2 seconds
 setInterval(printHello, 2000);

 

এখন main.js ফাইলটি রান করান


$ node main.js


উপরের প্রোগ্রামটি প্রতি ২ সেকেন্ড পরপর printHello() ফাংশন কে কল করতে থাকবে ।

 

Sort objects stored in deque

Huge Sell on Popular Electronics

/* The following code example is taken from the book
 * "The C++ Standard Library - A Tutorial and Reference"
 * by Nicolai M. Josuttis, Addison-Wesley, 1999
 *
 * (C) Copyright Nicolai M. Josuttis 1999.
 * Permission to copy, use, modify, sell and distribute this software
 * is granted provided this copyright notice appears in all copies.
 * This software is provided "as is" without express or implied
 * warranty, and with no claim as to its suitability for any purpose.
 */
#include <iostream>
#include <string>
#include <deque>
#include <set>
#include <algorithm>
using namespace std;


/* class Person
 */
class Person {
  private:
    string fn;    // first name
    string ln;    // last name
  public:
    Person() {
    }
    Person(const string& f, const string& n)
     : fn(f), ln(n) {
    }
    string firstname() const;
    string lastname() const;
    // ...
};

inline string Person::firstname() const {
    return fn;
}

inline string Person::lastname() const {
    return ln;
}

ostream& operator<< (ostream& s, const Person& p)
{
    s << "[" << p.firstname() << " " << p.lastname() << "]";
    return s;
}


/* binary function predicate:
 * - returns whether a person is less than another person
 */
bool personSortCriterion (const Person& p1, const Person& p2)
{
    /* a person is less than another person
     * - if the last name is less
     * - if the last name is equal and the first name is less
     */
    return p1.lastname()<p2.lastname() ||
           (p1.lastname()==p2.lastname() &&
            p1.firstname()<p2.firstname());
}

int main()
{
    // create some persons
    Person p1("nicolai","josuttis");
    Person p2("ulli","josuttis");
    Person p3("anica","josuttis");
    Person p4("lucas","josuttis");
    Person p5("lucas","otto");
    Person p6("lucas","arm");
    Person p7("anica","holle");

    // insert person into collection coll
    deque<Person> coll;
    coll.push_back(p1);
    coll.push_back(p2);
    coll.push_back(p3);
    coll.push_back(p4);
    coll.push_back(p5);
    coll.push_back(p6);
    coll.push_back(p7);

    // print elements
    cout << "deque before sort():" << endl;
    deque<Person>::iterator pos;
    for (pos = coll.begin(); pos != coll.end(); ++pos) {
        cout << *pos << endl;
    }

    // sort elements
    sort(coll.begin(),coll.end(),    // range
         personSortCriterion);       // sort criterion

    // print elements
    cout << "deque after sort():" << endl;
    for (pos = coll.begin(); pos != coll.end(); ++pos) {
        cout << *pos << endl;
    }
}

/*
deque before sort():
[nicolai josuttis]
[ulli josuttis]
[anica josuttis]
[lucas josuttis]
[lucas otto]
[lucas arm]
[anica holle]
deque after sort():
[lucas arm]
[anica holle]
[anica josuttis]
[lucas josuttis]
[nicolai josuttis]
[ulli josuttis]
[lucas otto]

 */

জাভাস্ক্রিপ্ট স্ট্রিং (JavaScript Strings)

Huge Sell on Popular Electronics

জাভাস্ক্রিপ্ট স্ট্রিং (JavaScript Strings)

  • জাভাস্ক্রিপ্ট স্ট্রিং টেক্সট (লেখা) সংরক্ষণ ও কাজে লাগানোর জন্য ব্যবহার করা হয়।
  • জাভাস্ক্রিপ্ট স্ট্রিং সাধারণভাবে একগুচ্ছ বর্ণকে পরবর্তীতে ব্যবহারের জন্য সংরক্ষণ করে। যেমন: "John Doe"
  • স্ট্রিং কোটেশনর এর ভিতরে যেকোন লেখা হতে পারে। আপনি একক বা ডবল কোটেশন ব্যবহার করতে পারেন।

যেমন:


var carname = "Volvo XC60";
var carname = 'Volvo XC60';


 

 

আপনি স্ট্রিং এর ভিতরে যতবার খুশি কোটেশন ব্যবহার করতে পারেন, যতক্ষন পর্যন্ত না প্রথম ও শেষ কোটেশন মিলে যায়।

উদাহরণ:


var answer = "It's alright";
var answer = "He is called 'Johnny'";
var answer = 'He is called "Johnny"';


 

 

স্ট্রিং এর দৈঘ্য

একটি স্ট্রিং এর দৈর্ঘ্য হবে প্রোপার্টি এ নির্দিষ্টকৃত দৈর্ঘ্য (length):

উদাহরণ:


var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;


 

 

বিশেষ বর্ণ

যেহেতু স্ট্রিং কোটেশন এর ভিতরে লিখতে হয়, সেহেতু নিচের উদাহরণটিকে ভুল বুঝে:


var y = "We are the so-called "Vikings" from the north."


উপরের স্ট্রেংটিকে মনে করে, "We are the so-called" .

এই সমস্যা সমাধানের উপায় হল, \ অক্ষরের অব্যাহতি (escape character) ব্যবহার করা।

এই অক্ষরের অব্যাহতি ব্যাকস্লাসটি বিশেষ বর্ণকে স্ট্রিং হিসেবে ফেরত দেয়।:

উদাহরণ:


var x = 'It\'s alright';
var y = "We are the so-called \"Vikings\" from the north."


অব্যাহতি অক্ষর (\) অন্যান্য বিশেষ বর্ণকেও স্ট্রিং হিসেবে ব্যবহার করতে ব্যবহৃত হয়।

এখানে বিশেষ বর্ণের একটি তালিকা দেওয়া হল যা ব্যাকস্লাস (\) এর মাধ্যমে টেক্স স্ট্রিং হিসেবে ব্যবহার করা যায়:

কোড আউটপুট
\' একক কোটেশন
\" ডবল কোটেশন
\\ ব্যাকস্লাস
\n নতুন লাইন
\r বহন ফেরত
\t ট্যাব
\b ব্যাকস্পেস
\f ফর্ম ফিড

 

লম্বা কোড এর লাইনকে ভেঙ্গে দেওয়া

সহজে পড়ার উপযোগী করার জন্য অনেক সময় প্রোগ্রামাররা 80 বর্ণের অধিক ক্যারেকটার এর লম্বা লাইনকে ভেঙ্গে লেখেন।

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

উদাহরণ:


document.getElementById("demo").innerHTML =
"Hello Dolly.";


 

আপনি টেক্স স্ট্রিং এর ভিতরে একটি একক ব্যাকস্লাস (\) ব্যবহার করেও লাইটকে ভাঙ্গতে পারেন।

উদাহরণ:


document.getElementById("demo").innerHTML = "Hello \
Dolly!";


 

নোট : \ মেথড ECMAScript (জাভাস্ক্রিপ্ট) স্ট্যান্ডার্ড নয়। কিছু ব্রাউজার \ (স্লাস) এর পেছনে স্পেস সাপোর্ট করে না।

একটি দীর্ঘ স্ট্রিং কে ভাঙ্গার নিরাপদ (কিন্তু একটু সময়সাপেক্ষ) পথ হচ্ছে স্ট্রিং সংযোযন ব্যবহার করা:

উদাহরণ:


document.getElementById("demo").innerHTML = "Hello" +
"Dolly!";


 

আপনি কোড লাইনকে ব্যাকস্লাস দিয়ে ভাঙ্গতে পারবেন না:

উদাহরণ:


document.getElementById("demo").innerHTML = \
"Hello Dolly!";


 

 

স্ট্রিং অবজেক্টও হতে পারে

সাধারণভাবে জাভাস্ক্রিপ্ট স্ট্রিং হচ্ছে আদিম মান (primitive values), অক্ষর দিয়ে তৈরি: var firstName = "John"

কিন্তু স্ট্রিং কে new কীওয়ার্ড এর সাহায্যে অবজেক্ট হিসেবেও ব্যবহার করা যেতে পারে : var firstName = new String("John")

উদাহরণ :


var x = "John";
var y = new String("John");

// typeof x will return string
// typeof y will return object


 

নোট: স্ট্রিং কে অবজেক্ট হিসেবে ব্যবহার করবেন না। এটি প্রক্রিয়াকরণ গতিকে ধরি করে ফেলে এবং বাজে পার্শ্বপ্রতিক্রিয়া উৎপন্ন হয়।

 

যখন == সমান অপারেটর ব্যবহার করবেন, সমান স্ট্রিংগুলো সমান দেখাবে:

যেমন:


var x = "John";
var y = new String("John");

// (x == y) is true because x and y have equal values


 

যখন আপনি === সমান অপারেটর ব্যবহার করবেন, সমস্ট্রিংগুলো সবসময় সমান থাকবে না, কারণ === অপারেটর মান এবং টাইপ একই হবে বলে আশা করে।


var x = "John";
var y = new String("John");

// (x === y) is false because x and y have different types


 

বা, অবজেক্ট এর সাথে অবজেক্ট তুলনা করা যায় না:

যেমন:


var x = new String("John");
var y = new String("John");

// (x == y) is false because objects cannot be compared


 

 

স্ট্রিং প্রোপার্টি এবং মেথড

আদিম মান, যেমন "John Doe" এর কোন প্রোপার্টিজ এবং মেথড থাকতে পারে না (কেননা এরা অবজেক্ট নয়)।

কিন্তু জাভাস্ক্রিপ্টে আদিম মান এর জন্যও মেথড এবং প্রোপার্টিজ রয়েছে, কারণ যখন মেথড এবং প্রোপার্টিজ কার্যে পরিণত করা হয় তখন ভাজাস্ক্রিপ্ট আদিম মানকে একইরূপে অবজেক্ট হিসেবে গণ্য করে।

 

স্ট্রিং মেথড সম্পর্কে পরবর্তী অধ্যায় এ আলোচনা করা হয়েছে।

 

স্ট্রিং প্রোপার্টিজ

প্রোপার্টি (Property) বর্ণনা
constructor যে ফাংশনটি স্ট্রিং অবজেক্ট এর প্রোটোটাইপ তৈরী করেছিলেন তা ফেরত দেয়
length স্ট্রিং এর length ফেরত দেয়
prototype আপনাকে একটি অবজেক্ট এর ভিতরে প্রোপার্টি এবং মেথড যোগ করার অনুমতি প্রদান করে।

 

স্ট্রিং মেথড

মেথড (Method) বর্ণনা
charAt() সুনির্দিষ্ট ইনডেক্স এর (অবস্থান) নির্দিষ্ট বর্ণ ফেরত দেয়।
charCodeAt() সুনির্দিষ্ট ইনডেক্স এর নির্দিষ্ট ইউনিকোড বর্ণ ফেরত দেয়।
concat() দুই বা ততোধিক স্ট্রিং কে যুক্ত করে এবং তার একটি অনুলিপি ফেরত দেয়।
fromCharCode() ইউনিকোড মানকে বর্ণে পরিবর্তন করে।
indexOf() স্ট্রিং এর নির্দিষ্ট মান এর ভিতরে প্রথম পাওয়া কাঙ্খিত ঘটনা এর অবস্থান ফেরত দেয়।
lastIndexOf() স্ট্রিং এর নির্দিষ্ট মান এর ভিতরে শেষ পাওয়া কাঙ্খিত ঘটনা এর অবস্থান ফেরত দেয়।
localeCompare() বর্তমান অবস্থানের দুটি স্ট্রিং এর মধ্যে তুলনা করে।
match() রেগুলার এক্সপ্রেশন এর মধ্যে একটি স্ট্রিং কে খুঁজে এবং খুঁজে পাওয়া ফলাফল ফেরত দেয়।
replace() স্ট্রিং এর নির্দিষ্ট মান খোঁজে এবং নতুন একটি স্ট্রিং দ্বারা প্রতিস্থাপণ করে তা ফেরত দেয়।
search() স্ট্রিং এর নির্দিষ্ট মান খোঁজে এবং এর অবস্থান ফেরত দেয়।
slice() স্ট্রিং এর সার অংশ বের করে এবং নতুন একটি স্ট্রিং ফেরত দেয়।
split() স্ট্রিং কে বিভাজন করে সাবস্ট্রিং এর অ্যারে তৈরি করে।
substr() স্ট্রিং এর নির্দিষ্ট অংশ এর সার অংশ বের করে কিছুসংখ্যক বর্ণের মাধ্যমে।
substring() দুইটি নির্দিষ্ট অবস্থান এর মধ্যে একটি স্ট্রিং এর নির্দিষ্ট অংশ এক্সট্রাক্ট করে।
toLocaleLowerCase() স্ট্রিং কে ছোট হাতের অক্ষরে পরিণত কর।
toLocaleUpperCase() স্ট্রিং কে বড় হাতের অক্ষরে পরিণত করে।
toLowerCase() স্ট্রিং কে ছোট হাতের অক্ষরে পরিণত কর।
toString() স্ট্রিং অবজেক্ট এর মান ফেরত দেয়।
toUpperCase() স্ট্রিং কে বড় হাতের অক্ষরে পরিণত করে।
trim() স্ট্রিং এর উভয় প্রান্ত থেকে ফাঁকা স্পেস মুছে ফেলে।
valueOf() স্ট্রিং অবজেক্ট এর আদি মান ফেরত দেয়।

 

নিজে নিজে অনুশীলন কর!

অনুশীলন 01:

ইঙ্গিত: ভেরিয়েবল টেক্সট এ স্ট্রিং "Hello World!" নির্ধারণ কর।


<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var txt;
document.getElementById("demo").innerHTML = txt;
</script>

</body>
</html>


 

 

অনুশীলন 02:

ইঙ্গিত: টেক্সট ভেরিয়েবল এর মান  এর দৈর্ঘ্য প্রদর্শনের জন্য length প্রোপার্টি ব্যবহার কর।


<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var txt = "Hello World!";
document.getElementById("demo").innerHTML = txt;
</script>

</body>
</html>


 

অনুশীলন 03:

ইঙ্গিত: স্ট্রিং টি ভেঙ্গে গেছে - ঠিকভাবে প্রদর্শনের জন্য অক্ষরের অব্যাহতি (escape character) ব্যবহার কর।


<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = "We are "Vikings".";
</script>

</body>
</html>


 

অনুশীলন 04:

ইঙ্গিত: শ্রেণীবদ্ধভাবে সংযুক্ত দুটি স্ট্রিং প্রদর্শন করে "হ্যালো ওয়ার্ল্ড!"


<!DOCTYPE html>
<html>
<body>

<p id="demo">Display the result here.</p>

<script>
var str1 = "Hello ";
var str2 = "World!";
</script>

</body>
</html>


 

 

 

জাভাস্ক্রিপ্ট অবজেক্ট (JavaScript Objects)

Huge Sell on Popular Electronics

জাভাস্ক্রিপ্ট অবজেক্ট (JavaScript Objects)

-পায়েল চৌধুরী

 

বাস্তব জীবনের দৃষ্টান্তে অবজেক্টস, প্রপার্টিস এবং মেথডস

বাস্তবে একটি গাড়ী হল একটা অবজেক্ট.

গাড়ীর ওজন, রং এসব হল একটি গাড়ীর প্রপার্টিজ এবং এর চালু হবার এবং থামার মেথড আছে.

 

Object Properties Methods
 Car car.name = Fiat car.start()
car.model = 500 car.drive()
car.weight = 850 kg car.brake()
car.color = white car.stop()

 

সকল গাড়ির বৈশিষ্ট্য (Prperties) একই, কিন্ত এর মান গাড়ী থেকে গাড়ী থেকে পৃথক।
সকল গাড়ির পদ্ধতি (Methods) একই, কিন্তু মেথড সম্পন্ন হওয়ার সময় ভিন্ন হয়।

জাভাস্ক্রিপ্ট অবজেক্ট

আমরা জানি যে, জাভাস্ক্রিপ্ট ভেরিয়েবল তথ্য মানের ধারক (data values) হিসাবে কাজ করে।

নীচের কোডের ভেরিয়েবলটি গাড়ীর নামের (Fiat) একটি সাধারণ মান (simple value) হিসাবে দেয়া হয়েছে:


var car = "Fiat";


বস্তু (Objects) সমূহও ভেরিয়েবল। কিন্তু এরা অনেক মান ধারণ করতে পারে। নীচের কোডের ভেরিয়েবলটি গাড়ীর নামের অনেকগুলো মান (Fiat, 500, white হিসাবে দেয়া হয়েছে:


var car = {type:"Fiat", model:500, color:"white"};


 

মানসমূহ name:value এভাবে জোড়ায় (name কোলন value) লেখা হয়।
জাভাস্ক্রিপ্ট অবজেক্টস নামকৃত মানসমূহের (named values) ধারক হিসাবে কাজ করে।

অবজেক্ট প্র্রপার্টিজ

name:value জোড়াকে (জাভাস্ক্রিপ্ট অবজেক্টস এ) প্র্রপার্টিজ বলে।


var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};


Property Property Value
firstName John
lastName Doe
age 50
eyeColor blue

 

অবজেক্টস মেথডস

মেথডস হল ক্রিয়াসমূহ যা অবজেক্টস এর উপর সম্পন্ন করা হয়।
মেথডস সমূহ ফাংশন ডেফিনেশন হিসাবে প্র্রপার্টিজ এর মধ্যে সংরক্ষণ করা হয়।

Property Property Value
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

জাভাস্ক্রিপ্ট অবজেক্ট যে নামকৃত ভেলু সমূহের ধারক হিসাবে কাজ করে তাদের প্র্রপার্টিজ এবং মেথডস বলে।

অবজেক্ট নির্ধারণ

জাভাস্ক্রিপ্ট অবজেক্ট এর উদাহারণ:


var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};


স্পেস এবং লাইন ব্রেক গুরুত্বপূর্ণ নয়। একটি অবজেক্ট নির্ধারণ করতে একাধিক লাইন জুড়ে লিখতে হতে পারে:
উদাহারণ:


var person = {
     firstName:"John",
     lastName:"Doe",
     age:50,
     eyeColor:"blue"
 };

 

অবজেক্ট প্র্রপার্টিজ এর ব্যবহার( Accessing Object Properties)

আমরা দু’ভাবে অবজেক্ট প্র্রপার্টিজ ব্যবহার করতে পারি:


objectName.propertyName


অথবা


objectName[propertyName]


উদাহারণ ১:


person.lastName;


 

 

উদাহারণ ২:


person["lastName"];


 

 

অবজেক্ট মেথডস এর ব্যবহার (Accessing Object Methods)

নিম্নলিখিত অনুযায়ী আমরা Object Methods ব্যবহার করতে পারি:


objectName.methodName()


 

উদাহারণ 1


name = person.fullName();


 

যদি fullName প্র্রপার্টি, () ছাড়া ব্যবহার করা হয়, তবে এটা আমাদের ফাংশন ডেফিনেশন এ ফেরত নিয়ে যাবে:
উদাহারণ 2


name = person.fullName;


 

আপনি কি জাভাস্ক্রিপ্ট এ Strings, Numbers, and Booleans কে Objects হিসেবে নির্ধারণ করেন

জাভাস্ক্রিপ্ট এ Strings, Numbers, and Booleans কে Objects হিসাবে কখনো ডিক্লেয়ার করবেননা!
যখন জাভাস্ক্রিপ্ট এ কোন ভেরিয়েবলকে "new", কিওয়ার্ড দ্বারা ডিক্লেয়ার করা হয় তখন সে ভেরিয়েবলটি একটা অবজেক্ট তৈরী করে :


var x = new String();        // Declares x as a String object
var y = new Number();        // Declares y as a Number object
var z = new Boolean();       // Declares z as a Boolean object

String, Number, and Boolean অবজেক্টস পরিহার করুন। এগুলো আপনার কোডকে জটিল করবে এবং কাজের গতিকে ধীর করে দিবে।

আমাদের সাথে থাকুন, পরবর্তীতে অবজেক্টের উপর আরো টিউটোরিয়াল পাবেন।

জাভাস্ক্রিপ্ট টাইপ রূপান্তরকরণ (JavaScript Type Conversion)

Huge Sell on Popular Electronics

আদনান নাহিদ
সরকারি তিতুমীর কলেজ

 

নাম্বার থেকে নাম্বারে পরিবর্তন, স্ট্রিং থেকে স্ট্রিং এ পরিবর্তন, বুলিয়ান থেকে বুলিয়ানে পরিবর্তন করা যায় ।

জাভাস্ক্রিপ্ট ডেটা প্রকারভেদ

মান ধারণ করতে পারে জাভাস্ক্রিপ্টে এমন 5 ধরনের ডাটা টাইপ আছে:

  • স্ট্রিং
  • নাম্বার
  • বুলিয়ান
  • অবজেক্ট
  • ফাংশন

অবজেক্ট ৩ ধরনের হয়:

  • অবজেক্ট
  • তারিখ
  • অ্যারে বা শ্রেণীবিন্যাস

এবং ২ ধরনের ডাটা টাইপের মান থাকতে পারে না :

  • অকার্যকর
  • অনির্দিষ্ট

 

typeof অপারেটর

একটি পরিবর্তনশীল জাভাস্ক্রিপ্ট এ ডাটা টাইপ খুঁজে পেতে অাপনি typeof অপারেটর ব্যবহার করতে পারেন ।
উদাহরণ


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 (if myCar is not declared)
typeof null                   // Returns object

 

লক্ষ্য করুন :

  • NaN নাম্বারের ডাটা টাইপ
  • অ্যারের অবজেক্টের ডাটা টাইপ
  • তারিখের অবজেক্টের ডাটা টাইপ
  • Null অবজেক্টের ডাটা টাইপ
  • একটি অনির্ধারিত পরিবর্তনশীল এর ডাটা টাইপ

যদি জাভাস্ক্রিপ্ট অবজেক্ট অ্যারে (অথবা তারিখ) হয় তাহলে আপনি অর্থ বা সীমা নির্ধারণ করার ক্ষেত্রে typeof ব্যবহার করতে পারবেন না ।

 

Typeof ডাটা টাইপ

typeof অপারেটর পরিবর্তনশীল নয়। এটি একটি অপারেটর। অপারেটর (+ + - * /) এর কোন ডাটা টাইপ থাকে না ।
কিন্তু, typeof অপারেটর সবসময় একটি স্ট্রিং প্রদান করে operand এর সময় ।

 

কনস্টাকশন প্রপারটি

সব জাভাস্ক্রিপ্টের জন্যই constructor property, constructor function প্রদান করে ।
উদাহরণ


"John".constructor                 // Returns function String()   { [native code] }
(3.14).constructor                 // Returns function Number()   { [native code] }
false.constructor                  // Returns function Boolean()  { [native code] }
[1,2,3,4].constructor              // Returns function Array()    { [native code] }
{name:'John', age:34}.constructor  // Returns function Object()   { [native code] }
new Date().constructor             // Returns function Date()     { [native code] }
function () {}.constructor         // Returns function Function() { [native code] }

 

আপনি কনস্টাকশন প্রপারটি খুঁজে দেখতে পারেন এর কোন অবজেক্ট অ্যারে আছে কিনা (contains the word "Array") :
উদাহরণ


function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

 

আপনি কনস্টাকশন প্রপারটি খুঁজে দেখতে পারেন এর কোন অবজেক্ট তারিখ কিনা (contains the word "Date") :
উদাহরণ


function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}

 

জাভাস্ক্রিপ্ট টাইপ রূপান্তরকরণ

জাভাস্ক্রিপ্ট ভেরিয়েবল নতুন একটি ভেরিয়েবলে এবং অন্য ডাটা টাইপে রূপান্তরিত করা যেতে পারে:

  • জাভাস্ক্রিপ্ট ফাংশন ব্যবহার করে
  • জাভাস্ক্রিপ্টের মাধ্যমে স্বয়ংক্রিয়ভাবে

 

নাম্বারকে স্ট্রিং এ রূপান্তর

গ্লোবাল পদ্ধতি String() দিয়ে সংখ্যাকে স্ট্রিং এ রূপান্তর করতে পারে ।

এটি যেকোনো ধরনের সংখ্যায় , লিটারেল, ভেরিয়েবল বা এক্সপ্রেশন এ ব্যবহার করা যায় :

উদাহরণ


String(x)         // returns a string from a number variable x
String(123)       // returns a string from a number literal 123
String(100 + 23)  // returns a string from a number from an expression

 

সংখ্যা পদ্ধতি toString() ও একই ধরনের কাজ করে ।
উদাহরণ


x.toString()
(123).toString()
(100 + 23).toString()

 

আপনি  (নাম্বার পদ্ধতি) অ্ধ্যায়ে সংখ্যাকে স্ট্রিং এ রূপান্তর করার আরো অনেক মেথড খুজে পাবেন :

পদ্ধতি বর্ণনা
toExponential() ব্যাখ্যামূলক একটি সংখ্যার সাথে সূচক নোটেশন ব্যবহার করে স্ট্রিং ফেরৎ পাওয়া
toFixed() স্থায়ী একটি নিদিষ্ট সংখ্যার সাথে দশমিক সংখ্যা ব্যবহার করে স্ট্রিং ফেরৎ পাওয়া
toPrecision() স্পষ্টতা একটি নিদিষ্ট দৈর্ঘ্যর সাথে একটি সংখ্যা ব্যবহার করে স্ট্রিং ফেরৎ পাওয়া

 

Booleans থেকে স্ট্রিং এ রূপান্তর

গ্লোবাল পদ্ধতি String(), Booleans কে স্ট্রিং এ রূপান্তর করতে পারে :
উদাহরণ


String(false)        // returns "false"
String(true)         // returns "true"

 

বুলিয়ান পদ্ধতি toString() ও একই ধরনের কাজ করে ।


false.toString()     // returns "false"
true.toString()      // returns "true"

 

তারিখকে স্ট্রিং এ রূপান্তর

গ্লোবাল পদ্ধতি String() দিয়ে তারিখকে স্ট্রিং এ রূপান্তর করতে পারে :


String(Date()) // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

 

তারিখের পদ্ধতি toString() ও একই ধরনের কাজ করে ।
উদাহরণ


Date().toString() // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

 

আপনি  (ডেট মেথড) অ্ধ্যায়ে সংখ্যাকে স্ট্রিং এ রূপান্তর করার আরো অনেক মেথড খুজে পাবেন :

মেথড বর্ণনা
getDate() তারিখকে সংখ্যা হিসেবে গ্রহণ করে (1-31)
getDay() সপ্তাহকে সংখ্যা হিসেবে গ্রহণ করে (0-6)
getFullYear() বছরের চারটি অঙ্ক গ্রহণ করে  (YYYY)
getHours() ঘন্টাকে গ্রহণ করে (0-23)
getMilliseconds() মিলি সেকেন্ড কে গ্রহণ করে (0-999)
getMinutes() মিনিটকে গ্রহণ করে (0-59)
getMonth() মাসকে গ্রহণ করে (0-11)
getSeconds() সেকেন্ড কে গ্রহণ করে (0-59)
getTime() সময়কে গ্রহণ করে (মিলিসেকেন্ড জানুয়ারী 1st 1970 থেকে)

 

স্ট্রিং কে সংখ্যায় রূপান্তর

গ্লোবাল পদ্ধতি Number() দিয়ে স্ট্রিংকে সংখ্যায় রূপান্তর করতে পারেন ।

স্ট্রিং নম্বর ধারণকারী ("3.14" ) কে (3.14 ) এ রূপান্তর ।

খালি স্ট্রিং কে 0 তে রূপান্তর ।

অন্যানগৈুলোকে NaN (নম্বর নয়) এ পরিবর্তন ।


Number("3.14")    // returns 3.14
Number(" ")       // returns 0
Number("")        // returns 0
Number("99 88")   // returns NaN

 

আপনি  (নাম্বর মেথড) অ্ধ্যায়ে স্ট্রিং কে সংখ্যায় রূপান্তর করার আরো অনেক মেথড খুজে পাবেন :

পদ্ধতি বর্ণনা
parseFloat একটি স্ট্রিং পার্স করুন এবং একটি ফ্লোটিং পয়েন্ট সংখ্যা ফেরৎ পান
parseInt একটি স্ট্রিং পার্স করুন এবং একটি পূর্ণসংখ্যা ফেরৎ পান

 

ইউনারী + অপারেটর

একটি ভেরিয়েবল (পরিবর্তনশীল নাম্বার) কে সংখ্যায় রূপান্তরের ক্ষেত্রে ইউনারী + অপারেটর ব্যবহার করা যেতে পারে :
উদাহরণ


 var y = "5";      // y is a string
 var x = + y;      // x is a number

 

যদি variable কে রূপান্তরিত করা না যায় তাহলে এটি সংখ্যাই থাকে যার মান হয় NaN (নম্বর নয়):
উদাহরণ


 var y = "John";   // y is a string
 var x = + y;      // x is a number (NaN)

 

Booleans কে নাম্বার এ রূপান্তর

গ্লোবাল পদ্ধতি Number() দিয়ে Booleans কে নাম্বারে রূপান্তর করতে পারেন :


Number(false)     // returns 0
Number(true)      // returns 1

 

তারিখ কে নাম্বারে রূপান্তর

গ্লোবাল পদ্ধতি Number() দিয়ে তারিখকে নাম্বারে রূপান্তর করতে পারেন :


d = new Date();
Number(d)          // returns 1404568027739

 

তারিখের পদ্ধতি toString() ও একই ধরনের কাজ করে ।


d = new Date();
d.getTime()        // returns 1404568027739

 

স্বয়ংক্রিয় রূপান্তর

যখন জাভাস্ক্রিপ্ট একটি "ভুল" ডাটা টাইপ নিয়ে কাজ করার চেষ্টা করে, এটি মানকে "সঠিক" ডাটা টাইপে রূপান্তর করতে চেষ্টা করে।
ফলাফল সবসময় আপনার আশানরূপ হয় না:


5 + null    // returns 5         because null is converted to 0
"5" + null  // returns "5null"   because null is converted to "null"
"5" + 2     // returns 52        because 2 is converted to "2"
"5" - 2     // returns 3         because "5" is converted to 5
"5" * "2"   // returns 10        because "5" and "2" are converted to 5 and 2

 

স্বয়ংক্রিয় স্ট্রিং রূপান্তর

জাভাস্ক্রিপ্ট স্বয়ংক্রিয়ভাবেই ভেরিয়েবল এর toString ফাংশনকে কল করে যখন অবজেক্ট বা ভেরিয়েবল থেকে "output" আশা করেন :


document.getElementById("demo").innerHTML = myVar;

// if myVar = {name:"Fjohn"}  // toString converts to "[object Object]"
// if myVar = [1,2,3,4]       // toString converts to "1,2,3,4"
// if myVar = new Date()      // toString converts to "Fri Jul 18 2014 09:08:55 
                                 GMT+0200"

 

সংখ্যা এবং Booleans ও রূপান্তরিত হয়, কিন্তু এবি খুব একটা দৃশ্যমান নয়:


// if myVar = 123             // toString converts to "123"
// if myVar = true            // toString converts to "true"
// if myVar = false           // toString converts to "false"

 

জাভাস্ক্রিপ্ট টাইপ রূপান্তর ছক

এই টেবিল বিভিন্ন প্রকার জাভাস্ক্রিপ্ট মানকে সংখ্যা, স্ট্রিং, এবং বুলিয়ান এ রূপান্তর প্রদর্শন করে :

আদি মান সংখ্যায় রূপান্তরিত স্ট্রিং এ রূপান্তরিত বুলিয়ানে রূপান্তরিত
false 0 "false" false
true 1 "true" true
0 0 "0" false
1 1 "1" true
"0" 0 "0" 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
{ } NaN "[object Object]" true
null 0 "null" false
undefined NaN "undefined" false

নোট: কোটেশন যুক্ত মান স্ট্রিং নির্দেশ করে।

বোল্ড করা মান (কিছু) প্রোগ্রামার সমর্থন করে না।

 

জাভাস্ক্রিপ্ট ম্যাথ অবজেক্ট (JavaScript Math Object)

Huge Sell on Popular Electronics

জাভাস্ক্রিপ্ট ম্যাথ অবজেক্ট (JavaScript Math Object)

ম্যাথ অবজেক্টের সাহায্যে সংখা ও ম্যাথমেটিকাল টার্ম নিয়ে কাজ করা যায়।

 

ম্যাথ অবজেক্ট

ম্যাথ অবজেক্টের সাহায্যে ম্যাথমেটিকাল টার্ম নিয়ে কাজ করা যায়।

ম্যাথ অবজেক্টে অনেকগুলো ম্যাথমেটিকাল মেথড অন্তর্ভুক্ত রয়েছে।

ম্যাথ অবজেক্টের একটি সাধারণ কাজ হলো রেন্ডম নাম্বার তৈরি করা:


Math.random();        // returns a random number

 

 

Math.min() ও Math.max() মেথড

Math.min() ও Math.max() মেথড সর্বচ্চো ও সর্বনিম্ন নাম্বার বের করার জন্য বেবহৃত হয়:
উদাহরণ ১:


Math.min(0, 150, 30, 20, -8);        // returns -8

উদাহরণ ২:


Math.max(0, 150, 30, 20, -8);        // returns 150

 

 

Math.random() মেথড

Math.random() মেথড ০ এবং ১ এর মধ্যে যে কোনো একটি নাম্বার নেয়ার জন্য বেবহৃত হয়।
উদাহরণ:


Math.random();           // returns a random number

 

 

Math.round() মেথড

Math.round() মেথড এর সাহায্যে একটি সংখ্যার রাউন্ডঅফ ভেলু বের করা যায়।
উদাহরণ:


Math.round(4.7);       // returns 5
 Math.round(4.4);      // returns 4

 

 

Math.celi() মেথড

Math.celi() মেথড এর সাহায্যে একটি সংখ্যাকে নিকটস্ত সর্বচ্চো সংখ্যাতে রাউন্ড করা হয়।
উদাহরণ:


Math.ceil(4.4);       // returns 5

 

 

Math.floor() মেথড

Math.floor() মেথড এর সাহায্যে একটি সংখ্যাকে নিকটস্ত সর্বনিম্ন সংখ্যাতে রাউন্ড করা হয়।
উদাহরণ:


Math.floor(4.7);      // returns 4

Math.floor() এবং Math.random() মেথড একত্রে বেবহার করে ১ থেকে ১০ এর মধ্যে রেন্ডম নাম্বার তৈরী করা যায়।
উদাহরণ:


Math.floor(Math.random() * 11);       // returns a random number between 0 and 10

 

 

ম্যাথ কন্সটেন্টস

ম্যাথ অবজেক্ট হিসেবে বেবহার করার জন্য জাভাস্ক্রিপ্টে ৮টি ম্যাথমেটিকাল কন্সটেন্ট রয়েছে।

 Math.E;         // returns Euler's number
 Math.PI         // returns PI
 Math.SQRT2      // returns the square root of 2
 Math.SQRT1_2    // returns the square root of 1/2
 Math.LN2        // returns the natural logarithm of 2
 Math.LN10       // returns the natural logarithm of 10
 Math.LOG2E      // returns base 2 logarithm of E
 Math.LOG10E     // returns base 10 logarithm of E

 

ম্যাথ অবজেক্ট মেথডস

 

মেথড বর্ণনা
abs(x) x এর এবসুলেট ভেলু বের করে
acos(x) x এর arccosine রেডিয়ানে বের করে
asin(x) x এর arcsine রেডিয়ানে বের করে
atan(x) x এর arctangent রেডিয়ানে বের করে
atan2(y,x) x এর arctangent বের করে
ceil(x) x কে নিকটস্ত সর্বচ্চো সংখ্যাতে রাউন্ড করে
cos(x) x এর cosine রেডিয়ানে বের করে
exp(x) Ex এর মান বের করে>/td>
floor(x) x কে নিকটস্ত সর্বনিম্ন সংখ্যাতে রাউন্ড করে
log(x) x এর লগারিদম বের করে
max(x,y,z,...,n) সর্বচ্চো নাম্বার বের করে
min(x,y,z,...,n) সর্বনিম্ন নাম্বার বের করে
pow(x,y) x এর উপর y এর পাওয়ার বের করে
random() ০ এবং ১ এর মধ্যে যে কোনো একটি রেন্ডম নাম্বার নেয়ার জন্য বেবহৃত হয়
round(x) নিকটস্ত পূর্ণসংখাতে রাউন্ড অফ করে
sin(x) x এর sine রেডিয়ানে বের করে
sqrt(x) x এর স্কয়াররুট বের করে
tan(x) x এর tangent এর মান বের করে

জাভাস্ক্রিপ্ট নাম্বার (JavaScript Numbers)

Huge Sell on Popular Electronics

জাভাস্ক্রিপ্ট নাম্বার (JavaScript Numbers)

নয়ন চন্দ্র দত্ত

 

জাভাস্ক্রিপ্ট এর শুধুমাত্র এক ধরনের নাম্বার আছে। নাম্বার দশমিক দিয়ে বা না দিয়েও লেখা যায়।

জাভাস্ক্রিপ্ট নাম্বার

নাম্বার দশমিক দিয়ে বা না দিয়েও লেখা যায়ঃ

উদাহরণ


var x = 34.00;         // A number with decimals
var y = 34;             // A number without decimals


 

 

অতিরিক্ত বড় বা অতিরিক্ত ছোট সংখ্যা বৈজ্ঞানিক (সূচক) স্বরলিপি দিয়ে লেখা যেতে পারে।

উদাহরণ


var x = 123e5;    // 12300000
 var y = 123e-5;  // 0.00123

 

 

জাভাস্ক্রিপ্ট নাম্বার সর্বদা 64 বিট ফ্লোটিং পয়েন্ট হয়

অন্যান্য অনেক প্রোগ্রামিং ভাষা থেকে ভিন্ন, জাভাস্ক্রিপ্ট বিভিন্ন ধরনের নাম্বার সংজ্ঞায়িত করেনা; যেমন- ইন্টিজার, ছোট, লম্বা, ফ্লোটিং-পয়েন্ট ইত্যাদি।
জাভাস্ক্রিপ্ট নাম্বার সবসময় আন্তর্জাতিক আইইইই 754 মান অনুসরণ করে, ডবল স্পষ্টতার ফ্লোটিং পয়েন্ট নাম্বার হিসেবে সংরক্ষণ করা হয়।
এই ফরম্যাট 64 বিট নাম্বার বিন্যাস করে যেখানে নাম্বার (ভগ্নাংশ) 0 থেকে 51 বি্টের মধ্যে সংরক্ষিত হয়। বিটের সূচক 52 থেকে 62 এবং বিটের সাইন ইন 63 হয়।

 

মান (ওরফে ভগ্নাংশ / অংশক) 52 bits (0 - 51)
সূচক 11 bits (52 - 62)
সাইন 1 bit (63)

 

যথার্থতা

ইন্টিজার (নির্দিষ্ট সময়ের বা সূচক স্বরলিপি ছাড়া নাম্বার) 15 সংখ্যার পর্যন্ত সঠিক বলে মনে করা হয়।

উদাহরণ


var x = 999999999999999;      // x will be 999999999999999
 var y = 9999999999999999;    // y will be 10000000000000000

 

 

দশমিক সর্বোচ্চ সংখ্যা 17 কিন্তু পাটীগণিতীয় ফ্লোটিং পয়েন্ট সবসময় 100% সঠিক হয়না।

উদাহরণ


var x = 0.2 + 0.1;            // x will be 0.30000000000000004

 

 

উপরে সমস্যা সমাধান করার জন্য, এটি সংখ্যাবৃদ্ধি এবং ডিভাইড করতে সাহায্য করেঃ

উদাহরণ


var x = (0.2 * 10 + 0.1 * 10) / 10;           // x will be 0.3

 

 

হেক্সাডেসিমেল

যদি তারা 0x দ্বারা পূর্বে হয় তাহলে জাভাস্ক্রিপ্ট হেক্সাডেসিমাল হিসাবে সাংখ্যিক ধ্রুবক ব্যাখ্যা করে।

উদাহরণ


var x = 0xFF;        // x will be 255

 

[ লিডিং শূন্য (যেমন 07) দিয়ে সংখ্যা লিখবেন না। ]

ডিফল্টরূপে, জাভাস্ক্রিপ্ট বেস 10 দশমিক সংখ্যা হিসাবে প্রদর্শন করে। কিন্তু বেস 16 (হেক্স), বেস 8 (অকট্যাল), বা বেস 2 (বাইনারি) হিসাবে আউটপুট toString() ব্যবহার করতে পারেন।

উদাহরণ


var myNumber = 128;
 myNumber.toString(16);     // returns 80
 myNumber.toString(8);      // returns 200
 myNumber.toString(2);      // returns 10000000

 

 

অসীম

উদাহরণ


var myNumber = 2;
 while (myNumber != Infinity) {          // Execute until Infinity
 myNumber = myNumber * myNumber;
 }

 

 

0 (শূন্য) দ্বারা ভাগ করেও অসীম তৈরি করা যায়।

উদাহরণ


var x = 2 / 0;         // x will be Infinity
 var y = -2 / 0;       // y will be -Infinity

 

 

অসীম একটি সংখ্যা। অসীম typeOf নাম্বার প্রদান করে।

উদাহরণ


typeof Infinity;       // returns "number"

 

 

NaN - কোন সংখ্যা নয়

NaN একটি জাভাস্ক্রিপ্ট সংরক্ষিত শব্দ একটি মান যা নির্দেশ করে যা কোন সংখ্যা নয়। একটি অ-সাংখ্যিক স্ট্রিং সঙ্গে গাণিতিক কাজ করার চেষ্টা করেলে রেজাল্ট NaN(কোন সংখ্যা নয়) হবে।

উদাহরণ


var x = 100 / "Apple";        // x will be NaN (Not a Number)

 

 

যাইহোক, স্ট্রিং এর একটি সাংখ্যিক মান রয়েছে। রেজান্ট একটি সংখ্যা হবেঃ

উদাহরণ


var x = 100 / "10";       // x will be 10

 

 

মান একটি সংখ্যা হয় তাহলে আপনি গ্লোবাল জাভাস্ক্রিপ্ট ফাংশন isNaN() ব্যবহার করে তা খুঁজে বের করতে পারেন।

উদাহরণ


var x = 100 / "Apple";
 isNaN(x);                // returns true because x is Not a Number

 

 

NaN দেখুন। আপনি যদি গাণিতিক অপারেশন এর মধ্যে NaN ব্যবহার করেন তাহলে রেজাল্ট নিম্নরূপ হবেঃ

উদাহরণ


 var x = NaN;
 var y = 5;
 var z = x + y;     // z will be NaN

 

 

NaN একটি নাম্বার। typeOf NaN নাম্বার প্রদান করে।

উদাহরণ


typeof NaN;         // returns "number"

 

 

নাম্বার অবজেক্টও হতে পারে

সাধারণত জাভাস্ক্রিপ্ট সংখ্যা লিটারেল থেকে তৈরি আদিম মানঃ var x = 123
কিন্তু নাম্বারকে নতুন শব্দ দ্বারা অবজেক্ট হিসাবেও সংজ্ঞায়িত করো যেতে পারেঃ var y = new Number(123)

উদাহরণ


var x = 123;
 var y = new Number(123);
          // typeof x returns number
          // typeof y returns object

 

 

কখনও নাম্বার অবজেক্ট তৈরি করবেন না। তারা সঞ্চালনের গতি মন্থর এবং কদর্য পার্শ্ব প্রতিক্রিয়া সৃষ্টি করে।
যখন সমতা == অপারেটর ব্যবহার করেন তখন সমান সংখ্যা সমান দেখায়:

উদাহরণ


var x = 500;
 var y = new Number(500);
// (x == y) is true because x and y have equal values

 

 

যখন সমতা === অপারেটর ব্যবহার করেন তখন সমান সংখ্যা সমান হয়না কারণ === অপারেটর টাইপ এবং মান উভয় সমতা বিবেচনা করে।

উদাহরণ


var x = 500;
 var y = new Number(500);
// (x === y) is false because x and y have different types

 

 

অথবা এমনকি খারাপ. অবজেক্টস তুলনা করা যাবে নাঃ

উদাহরণ


var x = new Number(500);
 var y = new Number(500);
// (x == y) is false because objects cannot be compared

 

জাভাস্ক্রিপ্ট অবজেক্টস তুলনা করা যায় না।

 

নাম্বার প্রোপার্টি এবং মেথড

আদিম মানের (3.14 বা 2014 এর মত) বৈশিষ্ট্য ও পদ্ধতি থাকতে পারে না(কারণ তারা অবজেক্ট না) ।

নাম্বার প্রোপার্টি

প্রোপার্টি ব্যাখ্যা
MAX_VALUE জাভাস্ক্রিপ্ট এ সম্ভব এমন বৃহত্তম সংখ্যা প্রদান করে।
MIN_VALUE জাভাস্ক্রিপ্ট এ সম্ভব এমন ক্ষুদ্রতম সংখ্যা প্রদান করে।
NEGATIVE_INFINITY অসীমে নেগেটিভ প্রতিনিধিত্ব করে।
NaN একটি "সংখ্যা নয়" মান প্রতিনিধিত্ব করে।
POSITIVE_INFINITY অসীম প্রতিনিধিত্ব করে।

 

উদাহরণ


var x = Number.MAX_VALUE;


 

এই প্রোপার্টিস শুধুমাত্র Number.MAX_VALUE হিসেবও ওয়াক্সেস করা যেতে পারে।

myNumber.MAX_VALUE, ব্যবহার করে, যেখানে MyNumber একটি পরিবর্তনশীল, অভিব্যক্তি, অথবা মান তা অনির্ধারিত হিসেবে ফিরে আসে।

উদাহরণ


var x = 6;
var y = x.MAX_VALUE; // y becomes undefined


 

পিএইচপি ৫ ডাটা টাইপ (PHP 5 Data Types)

Huge Sell on Popular Electronics

আক্তারুজ্জামান

Department of CSE, University of Chittagong
ভেরিয়েবল বিভন্ন রকমের ডাটা স্টোর করতে পারে, এবং বিভন্ন ডাটা টাইপ বিভন্ন রকম কাজ করে। পিএইচপি নিচে উল্লেখিত ডাটা টাইপ গুলো সাপোর্ট করে।

স্ট্রিং (String):

স্ট্রিং তৈরি হয় এক বা একাধিক ক্যারেক্টার মিলে । সোজা কথায় স্ট্রিং হচ্ছে ক্যারেক্টারের সমষ্টি । যেমনঃ “Hello World” হচ্ছে একটি স্ট্রিং।
ডাবল কিংবা সিঙ্গল কোট ব্যবহার করে স্ট্রিং (string) ভেরিয়েবল তৈরি করতে হয়।
উদাহরণঃ


 <?php 
 $x = "Hello world!";
 $y = 'Hello world!';
 
 echo $x;
 echo "<br>"; 
 echo $y;
 ?>

এইখানে $x এবং y হল দুটি string টাইপ ভেরিয়েবল

 

ইন্টিজার (integer)

ইন্টিজার মানে হল পূর্ণ সংখ্যা । এইটি -2,147, 483, 648 এবং +2, 147, 483, 647 এর মধ্যে যে কোন একটি সংখ্যা হতে পারে। নিচের উদাহরণে $x হল একটি ইন্টিজার (integer) টাইপের ভেরিয়েবল।


<?php 
 $x = 5985;
 var_dump($x);
 ?>

var_dump() ফাংশনটি ডাটা টাইপ এবং মান রিটার্ন করে।

 

ফ্লোটিং পয়েন্ট (Float)

ফ্লোট হল একটি decimal point নাম্বার। নিচের উদাহরণে $x হল একটি ফ্লোট টাইপের ভেরিয়েবল।


<?php 
 $x = 10.365;
 var_dump($x);
 ?>

 

বুলিয়ান (boolean)

কোন কিছু সত্য না মিথ্যা তা প্রকাশ করার জন্য বুলিয়ান ডাটা টাইপটি ব্যাবহার করা হয়।বুলিয়ান এর দুইটি মান হতে পারে – true অথবা false
উদাহরনঃ


$x = true
$y = false

 

এ্যারে (Array)

একটি সিঙ্গেল ভেরিয়েবলে একের অধিক মান স্টোর করার জন্য এ্যারে ব্যাবহার করা হয়। নিচের উদাহরণে $cars হল একটি এ্যারে।


<?php 
 $cars = array("Volvo","BMW","Toyota");
 var_dump($cars);
 ?>

এইখানে $cars এ্যারেতে তিনটি স্ট্রিং টাইপের মান রয়েছেঃ
Volvo, BMW এবং Toyota।

 

অবজেক্ট টাইপ (Object)

কোন নির্দিষ্ট একটি ক্লাসের instance কে অবজেক্ট বলা হয়। অবজেক্ট হচ্ছে ভেরিয়েবল এবং ফাংশন এর সমস্টি। অবজেক্ট ইন্সট্যান্স তৈরি করতে হয় new কিওয়ার্ডটি ব্যবহার করে।
উদাহরনঃ


<?php
 class Car {
     function Car() {
         $this->model = "VW";
     }
 }
 
 // create an object
 $herbie = new Car();
 
 // show object properties
 echo $herbie->model;
 ?>

 

নাল টাইপ (Null)

নাল একটি বিশেষ ধরণের ডাটা টাইপ যেটার মান হতে পারে শুধুমাত্র একটি- এবং এইটি হল null । একটি ভেরিয়েবলে কোন মান এসাইন করা না হলে ওইটাকে নাল ডাটা টাইপের ভেরিয়েবল বলা হয়।
উদাহরনঃ


<?php
$x = "Hello world!";
$x = null;
var_dump($x);
?>


এইখানে $x হল একটি নাল টাইপের ভেরিয়েবল।