জাভাস্ক্রিপ্ট সেরা অভ্যাস
পাবলিক ভেরিয়েবল এড়িয়ে চলুন, নতুন, ==, ইভাল()
টিপ:
এই সর্বোত্তম অনুশীলনগুলি অনুসরণ করলে আপনার জাভাস্ক্রিপ্ট কোডের গুণমান, কর্মক্ষমতা এবং নিরাপত্তা উন্নত হবে।
পাবলিক ভেরিয়েবল এড়িয়ে চলুন
পাবলিক ভেরিয়েবলের ব্যবহার কম করুন।
এটি সমস্ত ডেটা প্রকার, অবজেক্ট এবং ফাংশন অন্তর্ভুক্ত করে।
পাবলিক ভেরিয়েবল এবং ফাংশন অন্যান্য প্রোগ্রাম দ্বারা ওভাররাইড করা হতে পারে.
স্থানীয় ভেরিয়েবল ব্যবহার করুন, এবং কিভাবে বন্ধ ব্যবহার করতে হয় তা শিখুন।
সর্বদা স্থানীয় ভেরিয়েবল ঘোষণা করুন
একটি ফাংশনে ব্যবহৃত সমস্ত ভেরিয়েবলকে স্থানীয় ভেরিয়েবল হিসাবে ঘোষণা করতে হবে।
স্থানীয় ভেরিয়েবলগুলিকে অবশ্যই var, let বা const কী দিয়ে ঘোষণা করতে হবে, অন্যথায় তারা পাবলিক ভেরিয়েবল হয়ে যাবে।
কঠোর মোড অঘোষিত ভেরিয়েবলের অনুমতি দেয় না।
উপরে বিজ্ঞপ্তি
প্রতিটি প্রোগ্রাম বা ফাংশনের উপরে সমস্ত ঘোষণা স্থাপন করা একটি ভাল কোডিং অনুশীলন।
এটি হল:
- পরিষ্কার কোড দেয়
- স্থানীয় ভেরিয়েবল দেখার জন্য একটি একক স্থান প্রদান করে
- অপ্রয়োজনীয় (অন্তর্নিহিত) পাবলিক ভেরিয়েবল এড়িয়ে চলা সহজ করে তোলে
- অপ্রয়োজনীয় পুনঃবিজ্ঞপ্তির সম্ভাবনা কমিয়ে দেয়
// শুরুতে ঘোষণা করুন প্রথম নাম, শেষ নাম, মূল্য, ছাড়, পূর্ণমূল্য দিন; // পরে ব্যবহার করুন firstName = "জন"; lastName = "Doe"; মূল্য = 19.90; ডিসকাউন্ট = 0.10; fullPrice = মূল্য - ছাড়;
এটি লুপ ভেরিয়েবলের জন্যও যায়:
for (let i = 0; i < 5; i++) {
ভেরিয়েবল শুরু করুন
ভেরিয়েবলগুলি ঘোষণা করার সময় শুরু করা ভাল কোডিং অনুশীলন।
এটি হল:
- পরিষ্কার কোড দেয়
- ভেরিয়েবল শুরু করার জন্য একটি একক স্থান প্রদান করে
- অনির্ধারিত মান এড়িয়ে যায়
// ঘোষণা করুন এবং শুরুতে শুরু করুন let firstName = ""; let lastName = ""; যাক দাম = 0; ছাড় = ০; যাক পূর্ণমূল্য = 0, const myArray = []; const myObject = {};
ভেরিয়েবল শুরু করলে স্কোপের ব্যবহার (এবং সুযোগের ডেটা টাইপ) সম্পর্কে ধারণা পাওয়া যায়।
জাভাস্ক্রিপ্ট ভেরিয়েবল পুনরায় ঘোষণা করা হচ্ছে
আপনি যদি var এর সাথে ঘোষিত একটি জাভাস্ক্রিপ্ট ভেরিয়েবল পুনরায় ঘোষণা করেন তবে এটি তার মান হারাবে না।
এই বিবৃতিগুলি কার্যকর করার পরেও carName ভেরিয়েবলে "Volvo" মান থাকবে:
উদাহরণ (প্রস্তাবিত নয়)
var carName = "Volvo";
var carName;
আপনি let বা const দিয়ে ঘোষিত একটি পরিবর্তনশীলকে পুনরায় ঘোষণা করতে পারবেন না।
উদাহরণ
এটি কাজ করে না:
let carName = "Volvo";
let carName;
এটি কাজ করে না:
const carName = "Volvo";
const carName;
const সহ অবজেক্ট ডিক্লেয়ার করুন
কনস্ট সহ অবজেক্ট ডিক্লেয়ার করা টাইপের কোন আকস্মিক পরিবর্তন রোধ করে:
উদাহরণ
let car = {type:"Fiat", model:"500", color:"white"}; car = "ফিয়াট"; // বস্তুটিকে একটি স্ট্রিংয়ে রূপান্তর করে const car = {type:"Fiat", model:"500", color:"white"}; car = "ফিয়াট"; // সম্ভব নয়
কনস্ট সহ অ্যারে ঘোষণা করুন
কনস্ট সহ অ্যারে ঘোষণা করা প্রকারের কোনও দুর্ঘটনাজনিত পরিবর্তনকে বাধা দেয়:
উদাহরণ
let cars = ["সাব", "ভলভো", "BMW"]; গাড়ি = 3; // একটি অ্যারেকে একটি সংখ্যায় রূপান্তর করে const cars = ["Saab", "Volvo", "BMW"]; গাড়ি = 3; // সম্ভব নয়
নতুন অবজেক্ট() ব্যবহার করবেন না
- নতুন স্ট্রিং() এর পরিবর্তে "" ব্যবহার করুন
- নতুন নম্বর () এর পরিবর্তে 0 ব্যবহার করুন
- নতুন বুলিয়ান() এর পরিবর্তে মিথ্যা ব্যবহার করুন
- নতুন অবজেক্ট() এর পরিবর্তে {} ব্যবহার করুন
- নতুন অ্যারে() এর পরিবর্তে [] ব্যবহার করুন
- নতুন RegExp() এর পরিবর্তে /()/ ব্যবহার করুন
- নতুন ফাংশন() এর পরিবর্তে ফাংশন (){} ব্যবহার করুন
উদাহরণ
let x1 = ""; // নতুন আদিম স্ট্রিং যাক x2 = 0; // নতুন আদিম সংখ্যা let x3 = মিথ্যা; // নতুন আদিম বুলিয়ান const x4 = {}; // নতুন বস্তু const x5 = []; // নতুন অ্যারে অবজেক্ট const x6 = /()/; // নতুন regexp অবজেক্ট const x7 = function(){}; // নতুন ফাংশন অবজেক্ট
স্বয়ংক্রিয় টাইপ রূপান্তর থেকে সতর্ক থাকুন
জাভাস্ক্রিপ্ট আলগাভাবে টাইপ করা হয়.
একটি ভেরিয়েবল সব ধরনের ডাটা ধারণ করতে পারে।
একটি ভেরিয়েবল তার ডেটা টাইপ পরিবর্তন করতে পারে:
উদাহরণ
let x = "হ্যালো"; // typeof x একটি স্ট্রিং x = 5; // টাইপফ xকে একটি সংখ্যায় রূপান্তর করে
মনে রাখবেন যে সংখ্যাগুলি দুর্ঘটনাক্রমে স্ট্রিং বা NaN এ রূপান্তরিত হতে পারে (কোনও সংখ্যা নয়)।
জাভাস্ক্রিপ্ট গণিত ক্রিয়াকলাপ সম্পাদন করার সময় সংখ্যাগুলিকে স্ট্রিংগুলিতে রূপান্তর করতে পারে:
উদাহরণ
যাক x = 5 + 7; // x.valueOf() 12, x সংখ্যার প্রকার যাক x = 5 + "7"; // x.valueOf() 57, typeof x স্ট্রিং let x = "5" + 7; // x.valueOf() 57, typeof x স্ট্রিং যাক x = 5 - 7; // x.valueOf()-2, x সংখ্যার প্রকার যাক x = 5 - "7"; // x.valueOf()-2, x সংখ্যার প্রকার let x = "5" - 7; // x.valueOf()-2, x সংখ্যার প্রকার যাক x = 5 - "x"; // x.valueOf() NaN, x সংখ্যার প্রকার
একটি স্ট্রিং থেকে একটি স্ট্রিং বিয়োগ করলে একটি ত্রুটি তৈরি হবে না কিন্তু NaN (সংখ্যা নয়):
উদাহরণ
"হ্যালো" - "ডলি" // NaN ফেরত দেয়
=== তুলনা ব্যবহার করুন
== তুলনা অপারেটর সর্বদা তুলনা করার আগে (সামঞ্জস্যপূর্ণ প্রকারের জন্য) কাস্ট করে।
=== অপারেটর মান এবং প্রকারের তুলনা করতে বাধ্য করে:
উদাহরণ
0 == ""; // true
1 == "1"; // true
1 == true; // true
0 === ""; // false
1 === "1"; // false
1 === true; // false
প্যারামিটার ডিফল্ট ব্যবহার করুন
যদি একটি ফাংশন একটি অনুপস্থিত যুক্তি সঙ্গে কল করা হয়, অনুপস্থিত আর্গুমেন্ট মান undefined সেট করা হয়.
অনির্ধারিত মান আপনার কোড ভাঙ্গতে পারে। আর্গুমেন্টে ডিফল্ট মান নির্ধারণ করা ভালো অভ্যাস।
উদাহরণ
function myFunction(x, y) {
if (y === undefined) {
y = 0;
}
}
ECMAScript 2015 একটি ফাংশন সংজ্ঞাতে ডিফল্ট প্যারামিটারের অনুমতি দেয়:
function (a=1, b=1) { /*function code*/ }
ফাংশন প্যারামিটারে ফাংশন প্যারামিটার এবং আর্গুমেন্ট সম্পর্কে আরও পড়ুন
ডিফল্টগুলির সাথে আপনার সুইচগুলি সম্পূর্ণ করুন৷
সর্বদা আপনার সুইচ স্টেটমেন্ট ডিফল্ট দিয়ে শেষ করুন। এমনকি যদি আপনি মনে করেন যে আপনার এটির প্রয়োজন নেই।
উদাহরণ
switch (new Date().getDay()) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
break;
default:
day = "Unknown";
}
অবজেক্ট হিসাবে সংখ্যা, স্ট্রিং এবং বুলিয়ান এড়িয়ে চলুন
সর্বদা সংখ্যা, স্ট্রিং, বা বুলিয়ানকে আদিম মান হিসাবে বিবেচনা করুন। বস্তু হিসেবে নয়।
এই প্রকারগুলিকে বস্তু হিসাবে ঘোষণা করা ক্রিয়াকলাপকে ধীর করে দেয় এবং খারাপ পার্শ্ব প্রতিক্রিয়া তৈরি করে:
উদাহরণ
let x = "জন"; let y = নতুন স্ট্রিং("জন"); (x === y) // মিথ্যা কারণ x একটি স্ট্রিং এবং y একটি বস্তু।
বা আরও খারাপ:
উদাহরণ
let x = নতুন স্ট্রিং("জন"); let y = নতুন স্ট্রিং("জন"); (x == y) // মিথ্যা কারণ আপনি বস্তুর তুলনা করতে পারবেন না।
eval() ব্যবহার করা এড়িয়ে চলুন
eval() ফাংশনটি কোডে টেক্সট চালানোর জন্য ব্যবহার করা হয়। প্রায় সব ক্ষেত্রে, এটি ব্যবহার করার প্রয়োজন নেই।
কারণ এটি নির্বিচারে কোড চালানোর অনুমতি দেয়, এটি একটি নিরাপত্তা সমস্যা উপস্থাপন করে।
জাভাস্ক্রিপ্ট সেরা অনুশীলন টিউটোরিয়াল
এই টিউটোরিয়ালটি আপনাকে জাভাস্ক্রিপ্টের সর্বোত্তম অনুশীলন সম্পর্কে আপনার জ্ঞান পরীক্ষা করতে সাহায্য করবে।