𝗡𝗮𝗺𝗲𝘀 𝗩𝗮𝗻𝗶𝗹𝗹𝗮𝗝𝗦 𝗩𝗮𝗿𝗶𝗮𝗯𝗹𝗲 𝗡𝗮𝗺𝗲𝘀
আসুন সমস্যাটি: ফাইলের আকারটি সরাসরি কাটা যাক। এখানে তালিকাভুক্ত প্রতিটি উত্তর আপনার কোডকে চূড়ান্ত করে ats আমি আপনাকে উপস্থাপন করছি যে সর্বোত্তম সম্ভাব্য পারফরম্যান্স, কোডের পঠনযোগ্যতা, বৃহত আকারের প্রকল্প পরিচালনা, বহু কোড সম্পাদকদের মধ্যে সিনট্যাক্স হিন্টিং এবং সংশোধনের মাধ্যমে কোডের আকার হ্রাস করার জন্য এটি গণনা করার সঠিক উপায়: আন্ডারস্কোর-নোটেশন ভেরিয়েবল।
wvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwvwv
উপরের চার্টে এবং নীচের উদাহরণে প্রদর্শিত হিসাবে, এখানে শুরু করার জন্য পাঁচটি সহজ ধাপ রয়েছে:
- গণনা গোষ্ঠীর জন্য একটি নাম নির্ধারণ করুন। এমন একটি বিশেষত্বের কথা চিন্তা করুন যা গণনার উদ্দেশ্যে বা কমপক্ষে অন্তর্ভুক্ত নথির বর্ণনা দিতে পারে। উদাহরণস্বরূপ, ব্যবহারকারীর দ্বারা বেছে নেওয়া রঙগুলি উপস্থাপন করে এমন একটি গণনার নাম রঙের চেয়ে COLORCHOICES নামে ভাল হতে পারে।
- দলে তালিকাটি পারস্পরিক-একচেটিয়া বা স্বতন্ত্র কিনা তা সিদ্ধান্ত নিন। যদি পারস্পরিক-একচেটিয়া হয় তবে প্রতিটি অঙ্কিত পরিবর্তনশীল নামটি শুরু করুন
ENUM_
। স্বাধীন বা পাশাপাশি থাকলে, ব্যবহার করুন INDEX_
।
- প্রতিটি প্রবেশের জন্য, একটি নতুন স্থানীয় ভেরিয়েবল তৈরি করুন যার নামটি শুরু হয়
ENUM_
বা এর সাথে শুরু হয় INDEX_
, তারপরে গ্রুপের নাম, তারপরে একটি আন্ডারস্কোর, তারপরে সম্পত্তিটির জন্য একটি অনন্য বন্ধুত্বপূর্ণ নাম
- একটি যোগ করুন
ENUMLENGTH_
, ENUMLEN_
, INDEXLENGTH_
, অথবা INDEXLEN_
(কিনা LEN_
বা LENGTH_
খুব শেষে ব্যক্তিগত পছন্দের) গণিত পরিবর্তনশীল। আপনার কোডটিতে যেখানে সম্ভব সেখানে আপনার এই পরিবর্তনশীলটি ব্যবহার করা উচিত তা নিশ্চিত করার জন্য যে গণনাতে একটি অতিরিক্ত এন্ট্রি যুক্ত করা এবং এই মান বাড়ানো আপনার কোডটি ভঙ্গ করবে না।
- ধারাবাহিক প্রতিটি গণিত পরিবর্তনশীল একটি মান এক শেষ চেয়ে বেশি দাও, 0. থেকে শুরু এই পৃষ্ঠাতে মন্তব্য বলে আছে
0
একটি গণিত মান কারণ হিসেবে ব্যবহার করা উচিত 0 == null
, 0 == false
, 0 == ""
, এবং অন্যান্য জাতীয় পাগলামি। আমি আপনাকে জমা দিয়েছি যে, একই সময়ে এই সমস্যাটি এড়াতে এবং একই সাথে পারফরম্যান্স বাড়ানোর জন্য, সর্বদা ব্যবহার করুন ===
এবং ==
আপনার কোডে typeof
(প্রাক্তন typeof X == "string"
) বাদে কখনই উপস্থিত না হতে দিন । আমার ব্যবহারের সমস্ত বছরগুলিতে, ===
0 টি একবার গণনার মান হিসাবে ব্যবহার করার ক্ষেত্রে আমার একবারও সমস্যা হয়নি। আপনি যদি এখনও চটজলদি 1
হন তবে অনেক ক্ষেত্রে পারফরম্যান্স জরিমানা ছাড়াই ENUM_
গণ্যকরণের ক্ষেত্রে (তবে INDEX_
গণিতে নয়) প্রাথমিক মান হিসাবে ব্যবহৃত হতে পারে ।
const ENUM_COLORENUM_RED = 0;
const ENUM_COLORENUM_GREEN = 1;
const ENUM_COLORENUM_BLUE = 2;
const ENUMLEN_COLORENUM = 3;
// later on
if(currentColor === ENUM_COLORENUM_RED) {
// whatever
}
কখন কীভাবে ব্যবহার করব INDEX_
এবং কখন ব্যবহার করব তা এখানে আমার মনে আছে ENUM_
:
// Precondition: var arr = []; //
arr[INDEX_] = ENUM_;
তবে, ENUM_
নির্দিষ্ট পরিস্থিতিতে, সূচি হিসাবে যথাযথ হতে পারে যেমন প্রতিটি আইটেমের উপস্থিতি গণনা করার সময়।
const ENUM_PET_CAT = 0,
ENUM_PET_DOG = 1,
ENUM_PET_RAT = 2,
ENUMLEN_PET = 3;
var favoritePets = [ENUM_PET_CAT, ENUM_PET_DOG, ENUM_PET_RAT,
ENUM_PET_DOG, ENUM_PET_DOG, ENUM_PET_CAT,
ENUM_PET_RAT, ENUM_PET_CAT, ENUM_PET_DOG];
var petsFrequency = [];
for (var i=0; i<ENUMLEN_PET; i=i+1|0)
petsFrequency[i] = 0;
for (var i=0, len=favoritePets.length|0, petId=0; i<len; i=i+1|0)
petsFrequency[petId = favoritePets[i]|0] = (petsFrequency[petId]|0) + 1|0;
console.log({
"cat": petsFrequency[ENUM_PET_CAT],
"dog": petsFrequency[ENUM_PET_DOG],
"rat": petsFrequency[ENUM_PET_RAT]
});
লক্ষ্য করুন যে, উপরের কোডটিতে, নতুন ধরণের পোষা প্রাণীর মধ্যে যুক্ত করা সত্যিই সহজ: আপনাকে কেবল নতুন এন্ট্রি যুক্ত করতে হবে ENUM_PET_RAT
এবং ENUMLEN_PET
সেই অনুযায়ী আপডেট করতে হবে । গণনার অন্যান্য সিস্টেমে একটি নতুন এন্ট্রি যুক্ত করা আরও কঠিন এবং বগী হতে পারে।
wvwwvw wvwvwvw wvwxvw wvwvwv vwvwvw wvwvvw wvwwvw wvwvwvw wvwvw wvwvwv vwvxwvw wvwvvw wvwwvw wvwvxwvw wvwvw wvwvwv vwvwvw wvwvvw wvwwvw xwvwvwvw wvwvw
𝗔𝗱𝗱𝗶𝘁𝗶𝗼𝗻 𝗨𝗽𝗽𝗲𝗿𝗰𝗮𝘀𝗲 𝗩𝗮𝗿𝗶𝗮𝗯𝗹𝗲𝘀 𝗪𝗶𝘁𝗵 𝗔𝗱𝗱𝗶𝘁𝗶𝗼𝗻
অতিরিক্ত হিসাবে, গণনার এই বাক্য গঠনটি নীচের মত পরিষ্কার এবং সংক্ষিপ্ত শ্রেণীর বর্ধনের অনুমতি দেয়। কোনও শ্রেণি প্রসারিত করতে, পিতামাত্ত শ্রেণীর LEN_
প্রবেশের জন্য একটি ইনক্রিমেন্টিং নম্বর যুক্ত করুন । তারপরে, সাবক্লাসটি নিজস্ব LEN_
এন্ট্রি সহ শেষ করুন যাতে ভবিষ্যতে সাবক্লাস আরও প্রসারিত হতে পারে।
(function(window){
"use strict";
var parseInt = window.parseInt;
// use INDEX_ when representing the index in an array instance
const INDEX_PIXELCOLOR_TYPE = 0, // is a ENUM_PIXELTYPE
INDEXLEN_PIXELCOLOR = 1,
INDEX_SOLIDCOLOR_R = INDEXLEN_PIXELCOLOR+0,
INDEX_SOLIDCOLOR_G = INDEXLEN_PIXELCOLOR+1,
INDEX_SOLIDCOLOR_B = INDEXLEN_PIXELCOLOR+2,
INDEXLEN_SOLIDCOLOR = INDEXLEN_PIXELCOLOR+3,
INDEX_ALPHACOLOR_R = INDEXLEN_PIXELCOLOR+0,
INDEX_ALPHACOLOR_G = INDEXLEN_PIXELCOLOR+1,
INDEX_ALPHACOLOR_B = INDEXLEN_PIXELCOLOR+2,
INDEX_ALPHACOLOR_A = INDEXLEN_PIXELCOLOR+3,
INDEXLEN_ALPHACOLOR = INDEXLEN_PIXELCOLOR+4,
// use ENUM_ when representing a mutually-exclusive species or type
ENUM_PIXELTYPE_SOLID = 0,
ENUM_PIXELTYPE_ALPHA = 1,
ENUM_PIXELTYPE_UNKNOWN = 2,
ENUMLEN_PIXELTYPE = 2;
function parseHexColor(inputString) {
var rawstr = inputString.trim().substring(1);
var result = [];
if (rawstr.length === 8) {
result[INDEX_PIXELCOLOR_TYPE] = ENUM_PIXELTYPE_ALPHA;
result[INDEX_ALPHACOLOR_R] = parseInt(rawstr.substring(0,2), 16);
result[INDEX_ALPHACOLOR_G] = parseInt(rawstr.substring(2,4), 16);
result[INDEX_ALPHACOLOR_B] = parseInt(rawstr.substring(4,6), 16);
result[INDEX_ALPHACOLOR_A] = parseInt(rawstr.substring(4,6), 16);
} else if (rawstr.length === 4) {
result[INDEX_PIXELCOLOR_TYPE] = ENUM_PIXELTYPE_ALPHA;
result[INDEX_ALPHACOLOR_R] = parseInt(rawstr[0], 16) * 0x11;
result[INDEX_ALPHACOLOR_G] = parseInt(rawstr[1], 16) * 0x11;
result[INDEX_ALPHACOLOR_B] = parseInt(rawstr[2], 16) * 0x11;
result[INDEX_ALPHACOLOR_A] = parseInt(rawstr[3], 16) * 0x11;
} else if (rawstr.length === 6) {
result[INDEX_PIXELCOLOR_TYPE] = ENUM_PIXELTYPE_SOLID;
result[INDEX_SOLIDCOLOR_R] = parseInt(rawstr.substring(0,2), 16);
result[INDEX_SOLIDCOLOR_G] = parseInt(rawstr.substring(2,4), 16);
result[INDEX_SOLIDCOLOR_B] = parseInt(rawstr.substring(4,6), 16);
} else if (rawstr.length === 3) {
result[INDEX_PIXELCOLOR_TYPE] = ENUM_PIXELTYPE_SOLID;
result[INDEX_SOLIDCOLOR_R] = parseInt(rawstr[0], 16) * 0x11;
result[INDEX_SOLIDCOLOR_G] = parseInt(rawstr[1], 16) * 0x11;
result[INDEX_SOLIDCOLOR_B] = parseInt(rawstr[2], 16) * 0x11;
} else {
result[INDEX_PIXELCOLOR_TYPE] = ENUM_PIXELTYPE_UNKNOWN;
}
return result;
}
// the red component of green
console.log(parseHexColor("#0f0")[INDEX_SOLIDCOLOR_R]);
// the alpha of transparent purple
console.log(parseHexColor("#f0f7")[INDEX_ALPHACOLOR_A]);
// the enumerated array for turquoise
console.log(parseHexColor("#40E0D0"));
})(self);
(দৈর্ঘ্য: 2,450 বাইট)
কেউ কেউ বলতে পারেন যে এটি অন্যান্য সমাধানগুলির তুলনায় কম ব্যবহারিক: এটি অনেক টাকার জায়গা কোমর করে, এটি লিখতে অনেক সময় লাগে, এবং এটি চিনির বাক্য গঠনের সাথে লেপযুক্ত নয়। এই লোকেরা তাদের কোডটি ছোট করে না দিলে সঠিক হবে। যাইহোক, কোনও যুক্তিসঙ্গত ব্যক্তি শেষ পণ্যটিতে আনমিনাইড কোড ছাড়বে না। এই সংশোধনের জন্য, ক্লোজার সংকলকটি আমার কাছে এখনও খুঁজে পাওয়া যায় নি। অনলাইন অ্যাক্সেস এখানে পাওয়া যাবে । ক্লোজার সংকলক আপনার জাভাস্ক্রিপ্টটি সুপার ডুপারকে ছোট করে দ্রুত সুপার ডুপার দ্রুত চালিত করে, এই সমস্ত অঙ্কের ডেটা নিতে এবং এটিকে ইনলাইন করতে সক্ষম। সুতরাং, বন্ধ সংকলক সহ মিনিফাই। কর।
wvwwvw wvwvwvw wvwxvw wvwvwv vwvwvw wvwvvw wvwwvw wvwvwvw wvwvw wvwvwv vwvxwvw wvwvvw wvwwvw wvwvxwvw wvwvw wvwvwv vwvwvw wvwvvw wvwwvw xwvwvwvw wvwvw
বন্ধ সংকলক অন্য কোনও জাভাস্ক্রিপ্ট মিনিফায়ারের সামর্থ্য ছাড়িয়ে যাওয়ার সূচনার মাধ্যমে কিছু চমত্কার অবিশ্বাস্য অপটিমাইজেশন সম্পাদন করতে সক্ষম। বন্ধ সংকলক একটি স্থির মান হিসাবে সেট আদিম পরিবর্তনশীল ইনলাইন করতে সক্ষম। বন্ধ সংকলক এই ইনলাইনড মানগুলির উপর ভিত্তি করে ইনফেরেন্সগুলি তৈরি করতে এবং যদি বিবৃতি এবং লুপগুলিতে অব্যবহৃত ব্লকগুলি সরাতে সক্ষম হয়।
'use strict';(function(e){function d(a){a=a.trim().substring(1);var b=[];8===a.length?(b[0]=1,b[1]=c(a.substring(0,2),16),b[2]=c(a.substring(2,4),16),b[3]=c(a.substring(4,6),16),b[4]=c(a.substring(4,6),16)):4===a.length?(b[1]=17*c(a[0],16),b[2]=17*c(a[1],16),b[3]=17*c(a[2],16),b[4]=17*c(a[3],16)):6===a.length?(b[0]=0,b[1]=c(a.substring(0,2),16),b[2]=c(a.substring(2,4),16),b[3]=c(a.substring(4,6),16)):3===a.length?(b[0]=0,b[1]=17*c(a[0],16),b[2]=17*c(a[1],16),b[3]=17*c(a[2],16)):b[0]=2;return b}var c=
e.parseInt;console.log(d("#0f0")[1]);console.log(d("#f0f7")[4]);console.log(d("#40E0D0"))})(self);
(দৈর্ঘ্য: 605 বাইট)
ক্লোজার সংকলক আপনার কোডটি আরও ভাল কোডিং করার জন্য এবং আপনার কোডটি ভালভাবে সংগঠিত করার জন্য পুরষ্কার দেয় কারণ অনেকগুলি মিনিফায়ার সংস্থাপিত কোডকে আরও বড় আকারের ফাইল আকারের সাথে শাস্তি দেয় তবে ক্লোজার কম্পাইলার আপনার সমস্ত পরিষ্কার-পরিচ্ছন্নতা এবং স্যানিটি দিয়ে একটি ছোট ফাইল আকারের আউটপুটে চালিয়ে নিতে সক্ষম হন যদি আপনি কৌশলগুলি ব্যবহার করেন তবে পরিবর্তনশীল নাম গণনা মত। এটি, এই এক মনের মধ্যেই কোডিংয়ের পবিত্র কান্ড: এটি এমন একটি সরঞ্জাম যা উভয়ই আপনার কোডকে আরও ছোট আকারের আকারে সহায়তা করে এবং আরও ভাল প্রোগ্রামিং অভ্যাসগুলি প্রশিক্ষণের মাধ্যমে আপনার মনকে সহায়তা করে।
wvwwvw wvwvwvw wvwxvw wvwvwv vwvwvw wvwvvw wvwwvw wvwvwvw wvwvw wvwvwv vwvxwvw wvwvvw wvwwvw wvwvxwvw wvwvw wvwvwv vwvwvw wvwvvw wvwwvw xwvwvwvw wvwvw
𝗦𝗶𝘇𝗲 𝗖𝗼𝗱𝗲 𝗦𝗶𝘇𝗲
এখন, আসুন আমরা দেখে নেওয়া যাক যে এগুলির মধ্যে কোনও গণনা ছাড়াই সমমানের ফাইলটি কত বড় হবে।
এনুমারেশন ব্যবহার না করে উত্স (দৈর্ঘ্য: 1,973 বাইট (477 বাইট
এনুমারেটেড কোডের চেয়ে কম!)) এনুমিউরেশন ব্যবহার না করে মিনাইফ করা (দৈর্ঘ্য: 843 বাইট ( গণিত কোডের চেয়ে 238 বাইট বেশি ))
যেমনটি দেখা গেছে, গণনা ছাড়াই উত্স কোডটি একটি বৃহত্তর মিনিফাইড কোডের ব্যয় সংক্ষিপ্ত। আমি আপনার সম্পর্কে জানি না; তবে আমি নিশ্চিতভাবে জানি যে আমি উত্স পণ্যটিতে উত্স কোডটি অন্তর্ভুক্ত করি না। সুতরাং, গণনার এই ফর্মটি এর চেয়ে অনেক বেশি উন্নত যে এর ফলে এটি ছোট ছোট ফাইলের আকারের আকার ধারণ করে।
wvwwvw wvwvwvw wvwxvw wvwvwv vwvwvw wvwvvw wvwwvw wvwvwvw wvwvw wvwvwv vwvxwvw wvwvvw wvwwvw wvwvxwvw wvwvw wvwvwv vwvwvw wvwvvw wvwwvw xwvwvwvw wvwvw
𝗙𝗶𝘅𝗶𝗻𝗴 🤝 𝗕𝘂𝗴 𝗙𝗶𝘅𝗶𝗻𝗴
এই স্বীকৃতির ফর্মটি সম্পর্কে আরও একটি সুবিধা হ'ল এটি ছোট আকারের কোডের আকার ছাড়াই সহজেই বড় আকারের প্রকল্পগুলি পরিচালনা করতে ব্যবহৃত হতে পারে। প্রচুর অন্যান্য ব্যক্তির সাথে একটি বৃহত প্রকল্পে কাজ করার সময়, কোডটি কে তৈরি করেছেন তার সাথে স্পষ্টভাবে চিহ্নিত ও চিহ্নিতকরণের সুবিধাজনক হতে পারে যাতে কোডের মূল স্রষ্টাকে দ্রুত সহযোগী বাগ ফিক্সিংয়ের জন্য চিহ্নিত করা যায়।
// JG = Jack Giffin
const ENUM_JG_COLORENUM_RED = 0,
ENUM_JG_COLORENUM_GREEN = 1,
ENUM_JG_COLORENUM_BLUE = 2,
ENUMLEN_JG_COLORENUM = 3;
// later on
if(currentColor === ENUM_JG_COLORENUM_RED) {
// whatever
}
// PL = Pepper Loftus
// BK = Bob Knight
const ENUM_PL_ARRAYTYPE_UNSORTED = 0,
ENUM_PL_ARRAYTYPE_ISSORTED = 1,
ENUM_BK_ARRAYTYPE_CHUNKED = 2, // added by Bob Knight
ENUM_JG_ARRAYTYPE_INCOMPLETE = 3, // added by jack giffin
ENUMLEN_PL_COLORENUM = 4;
// later on
if(
randomArray === ENUM_PL_ARRAYTYPE_UNSORTED ||
randomArray === ENUM_BK_ARRAYTYPE_CHUNKED
) {
// whatever
}
𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲
তদ্ব্যতীত, গণনার এই ফর্মটি মিনিফিকেশনের পরেও খুব দ্রুত। সাধারণ নামযুক্ত বৈশিষ্ট্যগুলিতে, ব্রাউজারটিকে হ্যাশম্যাপ ব্যবহার করতে হবে যেখানে সম্পত্তিটি কোনও বস্তুটিতে রয়েছে তা সন্ধান করতে। যদিও জেআইটি সংকলকগণ বুদ্ধি সহকারে এই অবস্থানটিতে ক্যাশে রাখে, বিশেষ কিছু ক্ষেত্রে যেমন অবজেক্ট থেকে নিম্ন সম্পত্তি মুছে ফেলার মতো এখনও প্রচণ্ড ওভারহেড রয়েছে।
তবে, ক্রমাগত অ-স্পার্স পূর্ণসংখ্যার সূচকযুক্ত PACKED_ELEMENTS অ্যারে সহ, ব্রাউজারটি সেই ওভারহেডের অনেকগুলি এড়িয়ে যেতে সক্ষম হয় কারণ অভ্যন্তরীণ অ্যারেতে মান সূচকটি ইতিমধ্যে নির্দিষ্ট করা আছে। হ্যাঁ, ইসমাস্ক্রিপ্ট স্ট্যান্ডার্ড অনুযায়ী সমস্ত বৈশিষ্ট্যগুলি স্ট্রিং হিসাবে বিবেচিত হবে। তবুও, ECMAScript স্ট্যান্ডার্ডের এই দিকটি পারফরম্যান্স সম্পর্কে খুব বিভ্রান্তিকর কারণ সমস্ত ব্রাউজারগুলিতে অ্যারেতে সংখ্যাসূচক সূচকের জন্য বিশেষ অপ্টিমাইজেশন রয়েছে।
/// Hashmaps are slow, even with JIT juice
var ref = {};
ref.count = 10;
ref.value = "foobar";
উপরের কোডটি নীচের কোডের সাথে তুলনা করুন।
/// Arrays, however, are always lightning fast
const INDEX_REFERENCE_COUNT = 0;
const INDEX_REFERENCE_VALUE = 1;
const INDEXLENGTH_REFERENCE = 2;
var ref = [];
ref[INDEX_REFERENCE_COUNT] = 10;
ref[INDEX_REFERENCE_VALUE] = "foobar";
সাধারণ গণনাগুলির সাথে কোডের চেয়ে অনেক বেশি দীর্ঘ বলে মনে হচ্ছে এমন কোডগুলির সাথে কেউ আপত্তি জানাতে পারে তবে চেহারাটি প্রতারণামূলক হতে পারে। এটি মনে রাখা গুরুত্বপূর্ণ যে মহাকাব্যিক সমাপ্তি সংকলকটি ব্যবহার করার সময় উত্স কোড আকার আউটপুট আকারের সাথে সমানুপাতিক নয়। কর।
/// Hashmaps are slow, even with JIT juice
var a={count:10,value:"foobar"};
গণনাবিহীন মিনিফায়েড কোড উপরে এবং গণনাগুলির সাথে সংযুক্ত কোড নীচে।
/// Arrays, however, are always lightning fast
var a=[10,"foobar"];
উপরের উদাহরণটি প্রমাণ করে যে উন্নত পারফরম্যান্সের পাশাপাশি, গণিত কোডটি একটি ছোট ছোট ফাইলের আকারেরও ফলাফল করে।
wvwwvw wvwvwvw wvwxvw wvwvwv vwvwvw wvwvvw wvwwvw wvwvwvw wvwvw wvwvwv vwvxwvw wvwvvw wvwwvw wvwvxwvw wvwvw wvwvwv vwvwvw wvwvvw wvwwvw xwvwvwvw wvwvw
𝗗𝗲𝗯𝘂𝗴𝗴𝗶𝗻𝗴 𝗗𝗲𝗯𝘂𝗴𝗴𝗶𝗻𝗴
তদ্ব্যতীত, শীর্ষে থাকা এই ব্যক্তির ব্যক্তিগত চেরি জাভাস্ক্রিপ্ট মোডে কোডমিরার পাঠ্য সম্পাদক সহ এই গণনাটির ফর্মটি ব্যবহার করছে । কোডমিরারের জাভাস্ক্রিপ্ট সিনট্যাক্স হাইলাইটিং মোড বর্তমান সুযোগে স্থানীয় ভেরিয়েবলগুলিকে হাইলাইট করে। এইভাবে, আপনি তাত্ক্ষণিকভাবে জানেন যখন আপনি কোনও ভেরিয়েবলের নামটি সঠিকভাবে টাইপ করেন কারণ যদি ভেরিয়েবলের নামটি আগে var
কীওয়ার্ড দিয়ে ঘোষণা করা হত , তবে ভেরিয়েবলের নামটি একটি বিশেষ বর্ণকে পরিণত করে (ডিফল্টরূপে সায়ান)। এমনকি আপনি কোডমিরার ব্যবহার না করলেও অন্তত ব্রাউজারটি সহায়ককে ছুড়ে দেয়[variable name] is not defined
ভুল টাইপ করা গণনার নাম সহ কোডটি কার্যকর করার সময় ব্যতিক্রম। এছাড়াও, জাভাস্ক্রিপ্ট সরঞ্জামগুলি যেমন জেএসলিন্ট এবং ক্লোজার কমপাইলার যখন আপনি একটি অঙ্কের পরিবর্তনশীল নামে ভুল টাইপ করেন তখন আপনাকে বলার বিষয়ে খুব জোরে। কোডমিরার, ব্রাউজার এবং বিভিন্ন জাভাস্ক্রিপ্ট সরঞ্জাম একসাথে রাখা খুব সহজেই সহজ এবং সত্যিই সহজ হিসাবে এই ফর্মটি ডিবাগিং করে।
const ENUM_COLORENUM_RED = 0,
ENUM_COLORENUM_GREEN = 1,
ENUM_COLORENUM_BLUE = 2,
ENUMLEN_COLORENUM = 3;
var currentColor = ENUM_COLORENUM_GREEN;
if(currentColor === ENUM_COLORENUM_RED) {
// whatever
}
if(currentColor === ENUM_COLORENUM_DNE) {
// whatever
}
উপরের স্নিপেটে, আপনাকে একটি ত্রুটি দিয়ে সতর্ক করা হয়েছিল কারণ ENUM_COLORENUM_DNE
এটি বিদ্যমান নেই।
wvwwvw wvwvwvw wvwxvw wvwvwv vwvwvw wvwvvw wvwwvw wvwvwvw wvwvw wvwvwv vwvxwvw wvwvvw wvwwvw wvwvxwvw wvwvw wvwvwv vwvwvw wvwvvw wvwwvw xwvwvwvw wvwvw
☑ ☑
আমি এটি নিরাপদ বলে মনে করি যে গণনার এই পদ্ধতিটি কেবলমাত্র সংশোধিত কোড আকারের জন্যই নয়, পারফরম্যান্স, ডিবাগিং এবং সহযোগিতার ক্ষেত্রেও সবচেয়ে ভাল উপায়।
সহায়ক প্রশ্নটি পড়ার পরে, আমি প্রশ্ন বাক্সের উপরের বাম উপরে তীর ক্লিক করে তাদের লেখায় সময় দেওয়ার জন্য লেখককে ধন্যবাদ জানাই। প্রতিটি উত্তর বাক্সে এইগুলির একটি তীর থাকে।
0
একটি গণনা নম্বর হিসাবে ব্যবহার করবেন না । যদি না এটি এমন কোনও কিছুর জন্য ব্যবহার করা থাকে যা সেট করা হয়নি। জেএসfalse || undefined || null || 0 || "" || '' || NaN
ব্যবহার করার তুলনায় সমস্তকে একই মান হিসাবে বিবেচনা করে==
।