ওয়েব এবং অ্যাপ্লিকেশানগুলি আরও জটিল হয়ে উঠলে, JavaScript এবং Node.js ক্রমবর্ধমানভাবে একজন বিকাশকারীর সংগ্রহশালায় সাধারণ প্রয়োজনীয়তা হয়ে উঠছে। আপনার কোড-ফুকে উন্নত করতে এবং আপনার সম্মুখীন হওয়া মাথাব্যথা কমাতে, আপনি আপনার কোডের প্রথম দিকে কিছু ফাংশন সংজ্ঞায়িত করতে পারেন যা দ্রুত সহজ কাজগুলি সম্পন্ন করে৷
মনে রাখবেন যে জাভাস্ক্রিপ্ট জাভা হিসাবে একই নয়। এখানে পার্থক্যগুলি দেখুন৷
৷1. একটি অ্যারেতে মানগুলির চারপাশে এলোমেলো করুন
কার্ডের ডেক এলোমেলো করার মতো, আপনি এই ওয়ান-লাইনারের সাহায্যে জাভাস্ক্রিপ্টে যতবার খুশি একটি অ্যারেতে মানগুলিকে শাফেল করতে পারেন:
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());
কার্ডের সাদৃশ্য রেখে, আমি 52টি মান এলোমেলো করতে চাইলে এটি দেখতে কেমন হবে:
let myarray = Array.from({length:52},(v,k)=>k+1); console.log(shuffleArray(myarray));
কোডটি আপনার কনসোল আউটপুটে এলোমেলোভাবে এলোমেলো মানগুলি প্রকাশ করবে৷
৷2. একটি তারিখ একটি সপ্তাহান্তে বা সপ্তাহের দিনে কিনা তা পরীক্ষা করুন
একটি সাধারণ অবশিষ্ট অপারেন্ড ব্যবহার করে, আপনি জাভাস্ক্রিপ্টে সপ্তাহান্তে একটি দিন পড়ে কিনা তা সহজেই পরীক্ষা করতে পারেন:
const isWeekend = (date) => date.getDay() % 6 == 0;
প্রশ্নে থাকা দিনটি সপ্তাহের দিনে পড়ে কিনা তা পরীক্ষা করতে আপনি যদি এটি পরিবর্তন করতে চান তবে শেষ তুলনাটি বিপরীত করুন:
const isWeekday = (date) => date.getDay() % 6 !== 0;
নিম্নলিখিত কোডে, আমি আজকে সপ্তাহান্তে কিনা তা পরীক্ষা করি:
console.log(isWeekend(new Date()));
আলাদা isWeekday
সংজ্ঞায়িত করার বিকল্প হিসেবে অথবা isWeekend
ভেরিয়েবল, আপনি শুধু NOT
ব্যবহার করতে পারেন একটি if-then-else
প্রকাশ করার সময় অপারেন্ড দুটি ভেরিয়েবলের যেকোনো একটির জন্য বিবৃতি যেমন:
if(!isWeekend(new Date())) { console.log("Today falls on a weekday."); } else { console.log("Today falls on a weekend."); }
3. একটি নির্দিষ্ট দশমিক বিন্দুতে একটি সংখ্যা কাটুন
আপনি আপনার ব্যবহারকারীদের যে আউটপুট দেবেন তা যতটা সম্ভব সহজ হওয়া দরকার এবং আপনার সাইট বা অ্যাপকে সংখ্যার বিশাল বর্ণের স্ট্রিং দেখার চেয়ে আর কিছুই আকর্ষণীয় করে তোলে না। একটি সংখ্যার কম উল্লেখযোগ্য দশমিক বিন্দু কেটে ফেলতে এবং ব্যবহারকারীর কাছে এটির মতো প্রদর্শন করতে, এই নিফটি সংজ্ঞাটি ধরুন:
const decimalFormat = (n, places) => ~~(Math.pow(10, places) * n) / Math.pow(10, places);
এটি পরীক্ষা করার জন্য, আমি একটি হাস্যকর পরিমাণ দশমিক স্থান সহ একটি সাংখ্যিক মান সংজ্ঞায়িত করি এবং এটিকে দুই দশমিক স্থানে কাটাতে এই দ্রুত ফাংশনটিকে কল করি।
let deciwow = 299.39542014592 console.log(decimalFormat(deciwow, 2));
ফলাফল একটি চোখের কম হওয়া উচিত.
4. তাপমাত্রা রূপান্তর করুন
জাভাস্ক্রিপ্টে ফারেনহাইটে সেলসিয়াসের মধ্যে রূপান্তর করার কোন প্রমিত উপায় নেই, তবে দুটি সাধারণ ওয়ান-লাইনার দিয়ে, আপনি নিজের মান তৈরি করতে পারেন৷
সেলসিয়াস থেকে ফারেনহাইটের জন্য:
const cToF = (celsius) => celsius * 9/5 + 32;
এবং ফারেনহাইট থেকে সেলসিয়াস:
const fToC = (fahrenheit) => (fahrenheit - 32) * 5/9;
আমার শহরে, তাপমাত্রা -2 ডিগ্রি সেলসিয়াস। সেলসিয়াস থেকে ফারেনহাইট রূপান্তর ওয়ান-লাইনার ব্যবহার করে আমরা মার্কিন যুক্তরাষ্ট্রে বসবাসকারী কারও কাছে এর অর্থ কী তা জানতে পারি:
cToF(-2);
এই অভিব্যক্তিটি 28.4 ডিগ্রী ফারেনহাইট তাপমাত্রা দেয়।
5. কেউ ডার্ক মোড ব্যবহার করছে কিনা তা পরীক্ষা করুন
আপনি যদি চান যে আপনি যে বিষয়বস্তুটি প্রদর্শন করেন সেটি আপনার কোড ব্যবহার করে ব্যক্তির রঙের স্কিমকে সম্মান করতে পারে, জাভাস্ক্রিপ্টে কেউ ডার্ক মোড ব্যবহার করছে কিনা তা সনাক্ত করার একটি উপায় অন্তর্ভুক্ত করে যাতে আপনি সেই অনুযায়ী রঙগুলি সামঞ্জস্য করতে পারেন। পদ্ধতিটি লেখার জন্য একটু জটিল, তবে আপনি এই ওয়ান-লাইনার ব্যবহার করে এটি ছোট করতে পারেন:
const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
এই ভেরিয়েবল ব্যবহার করে একটি চেকের উদাহরণ এখানে দেওয়া হল:
if (isDarkMode) { console.log("This screen is in dark mode."); } else { console.log("This screen is not using dark mode."); }
মনে রাখবেন যে এই কোডটি শুধুমাত্র ব্রাউজারগুলির জন্য জাভাস্ক্রিপ্টে কাজ করে। Node.js window
এর জন্য সমর্থন বাস্তবায়ন করে না .
6. সংখ্যার একটি অ্যারের গড় পান
ডেটাসেটগুলির সাথে ডিল করার সময়, জাভাস্ক্রিপ্টের অ্যারেগুলির সাথে সংযুক্ত একটি সহজ ফাংশন থাকে যা আপনাকে একটি নির্দিষ্ট টেবিলের সমস্ত মানের যোগফল পাওয়ার জন্য প্রয়োজনীয় গাণিতিক সম্পাদন করতে দেয় তারপর এই সংখ্যাগুলিকে টেবিলের দৈর্ঘ্য দ্বারা ভাগ করে। কোডের একটি লাইনে এটি সুন্দরভাবে করতে, আপনাকে শুধুমাত্র এটি করতে হবে:
const getAverage = (arr) => arr.reduce((a, b) => a + b, 0) / arr.length;
এখানে আমি একটি ডেটাসেট তৈরি করি এবং কনসোলের মাধ্যমে এর সমস্ত মানের গড় বের করি:
let dataset = [2, 14, 88, 204, 1515, 1294, 12, 144]; console.log(getAverage(dataset));
এই কোড ব্যবহার করে, আপনার আউটপুট 409.125 হওয়া উচিত।
7. একটি UUID তৈরি করুন
আপনি যদি আপনার অ্যাপ্লিকেশন ব্যবহার করে লোকেদের থেকে পরিসংখ্যান এবং ডেটা সংগ্রহ করতে চান (উদাহরণস্বরূপ, একটি কুকি তৈরি করে), আক্রমণাত্মক না হয়ে এটি করার সেরা উপায়গুলির মধ্যে একটি হল একটি সর্বজনীন অনন্য শনাক্তকারী (UUID) তৈরি করা৷ জাভাস্ক্রিপ্টে RFC4122-সম্মত UUID তৈরি করার সহজ উপায় অন্তর্ভুক্ত করা হয় না (যদিও Node.js-এ uuid
আছে npm প্যাকেজ যা বক্সের বাইরে এই কার্যকারিতা প্রদান করে।
JS-তে, আপনি এই এক-লাইন অভিব্যক্তির মাধ্যমে আপনার ব্যবহারকারীদের জন্য একটি নতুন-মিন্টেড UUID পপ আউট করতে পারেন:
const genUUID = (a) => (a ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, genUUID));
এখানে, আমি আউটপুট পরীক্ষা করি:
console.log(genUUID());
8. দুই তারিখের মধ্যে দিনের সংখ্যা পান
একটি নির্দিষ্ট মান (ব্যবহারকারীর অ্যাকাউন্টের মতো) বয়স নির্ধারণ করার সময়, আপনাকে একটি নির্দিষ্ট বিন্দু থেকে অতিবাহিত হওয়া দিনের সংখ্যা গণনা করতে হবে। এখানে একটি সাধারণ ওয়ান-লাইনার যা এটি করে:
const ageDays = (old, recent) => Math.ceil(Math.abs(old - recent) / (1000 * 60 * 60 * 24));
একটি উদাহরণ ব্যবহারের ক্ষেত্রে, আমরা ভান করি যে আমরা একজন ব্যবহারকারীর বয়স মূল্যায়ন করছি যিনি 28 ডিসেম্বর, 2012 তারিখে তাদের অ্যাকাউন্ট তৈরি করেছেন এবং এই ঘোষণাটি ব্যবহার করে সেই তারিখ থেকে আজকের মধ্যে দিনের সংখ্যা জানতে:
console.log(ageDays(new Date('2012-12-28'), new Date()));
এটি লেখার সময়, এটি 3298 দিনের ফলাফল পাওয়া উচিত।
9. একটি পরিসরের মধ্যে একটি র্যান্ডম নম্বর তৈরি করুন
কখনও কখনও, শুধুমাত্র কিছু র্যান্ডম সংখ্যা তৈরি করা যথেষ্ট নয়। আপনি শুধুমাত্র এটি উত্পন্ন হয় যা শর্তাবলী সীমিত প্রয়োজন হতে পারে. এই ওয়ান-লাইনারের সাহায্যে, আপনি একটি নির্দিষ্ট সীমার মধ্যে সংখ্যা তৈরি করবেন:
const rangeRandom = (low, high) => Math.floor(Math.random() * (high - low + 1)) + low;
এটি পরীক্ষা করা সহজ হওয়া উচিত:
console.log(rangeRandom(400, 20000));
প্রায়শই জিজ্ঞাসিত প্রশ্ন
1. কেন কুকিতে UUID ব্যবহার করবেন?
যেহেতু কুকিগুলি তাদের স্বভাবগতভাবে অনুপ্রবেশকারী এবং ব্যবহারকারীর মেশিনে জায়গা দখল করে, তাই ডেটা সংগ্রহ করার জন্য এই যন্ত্রগুলি ব্যবহার করার সময় আপনার লক্ষ্য করা উচিত যতটা সম্ভব দক্ষ এবং অ-আক্রমণকারী হওয়া। UUID ব্যবহার করলে দ্বিগুণ সুবিধা পাওয়া যায়। প্রথমত, শনাক্তকারীর দৈর্ঘ্য মাত্র 128 বিট হওয়ার কারণে এটি ক্লায়েন্ট-ভিত্তিক সঞ্চয়স্থানে ব্যাপৃত স্থানকে কম করে। দ্বিতীয়ত, এটি ব্যবহারকারীর ব্যক্তিগত তথ্যের উপর নির্ভর করে।
2. অন্ধকার মোড সনাক্ত করার সময় আমি Node.js-এ একটি "উইন্ডো সংজ্ঞায়িত নয়" ত্রুটি পেয়েছি। আমি কি করব?
Node.js ক্লায়েন্ট-সাইড মডিউলগুলিতে কল করতে পারে না কারণ এটিতে জাভাস্ক্রিপ্টের মতো একই অন্তর্নিহিত ক্লায়েন্ট-সার্ভার সম্পর্ক নেই। এই নিবন্ধে ডার্ক মোড সনাক্তকরণ ওয়ান-লাইনারটি বিশেষভাবে ব্রাউজার-ভিত্তিক জাভাস্ক্রিপ্টের জন্য।
3. এই কোড কি সব ব্রাউজারে সর্বজনীন?
জাভাস্ক্রিপ্ট কোড একটি দোভাষী ব্যবহার করে যা সর্বজনীনভাবে কাজ করবে বলে মনে করা হয়। যদিও এটি তাত্ত্বিকভাবে সমস্ত ব্রাউজারে কাজ করে, তারা যেভাবে আপনার কোড ব্যাখ্যা করে তা কিছুটা আলাদা হতে পারে বিশেষ করে খুব পুরানো সফ্টওয়্যারের সাথে। এখানে প্রকাশ করা সমস্ত ওয়ান-লাইনারের ক্ষেত্রে, আপনার ব্যবহারকারী যে ব্রাউজারে কোড চালান তা নির্বিশেষে তাদের সবাইকে একই ফলাফল দেওয়া উচিত। তবে সচেতন থাকুন যে আপনি সাধারণভাবে জাভাস্ক্রিপ্টে ব্যবহার করেন এমন কিছু বৈশিষ্ট্য হয়তো প্যাল মুন, ইন্টারনেট এক্সপ্লোরার বা বর্তমানে সক্রিয়ভাবে বিকাশ করা ব্রাউজারগুলির 2000-এর দশকের প্রথম দিকের সংস্করণগুলিতে কাজ নাও করতে পারে৷