জাভাস্ক্রিপ্টে অপ্রচলিত ফাংশন কল আবিষ্কার করা

JavaScript

ফাংশন আহ্বানের জন্য নতুন জাভাস্ক্রিপ্ট সিনট্যাক্স অন্বেষণ করা হচ্ছে

জাভাস্ক্রিপ্ট, সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষাগুলির মধ্যে একটি, কোডের সাথে ইন্টারঅ্যাক্ট করার অনেক উপায় অফার করে। যাইহোক, ফাংশনগুলির সাথে কাজ করার সময়, আপনি আশা করতে পারেন যে সমস্ত ফাংশন কলের জন্য তাদের আর্গুমেন্টের চারপাশে বন্ধনী প্রয়োজন। সম্প্রতি, বন্ধনী ছাড়া একটি বিকল্প কলিং পদ্ধতি সামনে এসেছে, যা ডেভেলপারদের মধ্যে কৌতূহল বাড়িয়েছে।

প্রশ্নে থাকা কোড স্নিপেটটি ফাংশনের নামের পাশে একটি স্ট্রিং স্থাপন করে একটি ফাংশনকে কল করতে দেখা যাচ্ছে, যেমন: . আশ্চর্যজনকভাবে, এই সিনট্যাক্সটি কাজ করছে বলে মনে হচ্ছে, যা এটি একটি নতুন জাভাস্ক্রিপ্ট বৈশিষ্ট্য নাকি কেবল সিনট্যাকটিক চিনি তা নিয়ে আলোচনার জন্ম দিয়েছে।

প্রথাগত জাভাস্ক্রিপ্টের সাথে পরিচিত বিকাশকারীরা এই পদ্ধতিটিকে কৌতূহলী মনে করতে পারে। এটি জাভাস্ক্রিপ্ট ইন্টারপ্রেটাররা কীভাবে এই ধরনের কেসগুলি পরিচালনা করে এবং এটি বন্ধনী ব্যবহার করে এমন স্ট্যান্ডার্ড কলিং সিনট্যাক্সের সাথে সারিবদ্ধ কিনা সে সম্পর্কে প্রশ্নগুলি উন্মুক্ত করে৷ কোড স্পষ্টতা নিশ্চিত করার জন্য এটি একটি উপনাম বা একটি স্বতন্ত্র বৈশিষ্ট্য কিনা তা বোঝা অপরিহার্য।

এই নিবন্ধটির লক্ষ্য এই অস্বাভাবিক ফাংশন কল পদ্ধতির পিছনে যান্ত্রিকতা উন্মোচন করা। আমরা এই সিনট্যাক্সের বৈধতা অন্বেষণ করব, এর লুকানো সুবিধা আছে কিনা তা তদন্ত করব এবং এটি জাভাস্ক্রিপ্ট মান অনুসরণ করে নাকি নিয়ম ভাঙে তা নির্ধারণ করব। এই কৌতূহলী বৈশিষ্ট্যের ভিতরের কাজগুলি আবিষ্কার করতে পড়ুন!

আদেশ ব্যবহার এবং বর্ণনার উদাহরণ
window[functionName] এই কমান্ডটি গ্লোবাল থেকে গতিশীলভাবে একটি সম্পত্তি অ্যাক্সেস করে বন্ধনী স্বরলিপি ব্যবহার করে বস্তু। এটি একটি ফাংশনের আহ্বানের জন্য অনুমতি দেয় যখন নামটি শুধুমাত্র রানটাইমে পরিচিত হয়।
class জাভাস্ক্রিপ্টে একটি ক্লাস সংজ্ঞায়িত করতে ব্যবহৃত হয়, পূর্বনির্ধারিত পদ্ধতির মতো অবজেক্ট তৈরি করার জন্য একটি ব্লুপ্রিন্ট প্রদান করে . পুনঃব্যবহারযোগ্য, মডুলার উপাদানগুলিতে যুক্তি এনক্যাপসুলেট করার সময় এটি কার্যকর।
this.greet = this.showAlert এই প্যাটার্নটি একটি ক্লাসের মধ্যে একটি পদ্ধতির জন্য একটি উপনাম তৈরি করে। আমাদের উদাহরণে, এটি কল করার অনুমতি দেয় অন্য নামের মাধ্যমে, পদ্ধতি পুনঃব্যবহারযোগ্যতা এবং এনক্যাপসুলেশন প্রদর্শন করা।
test() অংশ পরীক্ষার কাঠামো, পরীক্ষা() একটি ইউনিট পরীক্ষা সংজ্ঞায়িত করে যা নিশ্চিত করে যে কোডটি প্রত্যাশা অনুযায়ী আচরণ করে। এটি একটি পরীক্ষার বিবরণ এবং একটি ফাংশন নেয় যা প্রকৃত বৈধতা সম্পাদন করে।
expect().toBe() আরেকটি জেস্ট ফাংশন যে একটি ফাংশন দ্বারা উত্পাদিত মান প্রত্যাশিত আউটপুটের সাথে মেলে তা নিশ্চিত করার জন্য ব্যবহৃত হয়। বিভিন্ন ইনপুট জুড়ে কোড সঠিকতা নিশ্চিত করার জন্য এটি গুরুত্বপূর্ণ।
functions[funcName] একটি বস্তু থেকে গতিশীলভাবে একটি ফাংশন নির্বাচন এবং কল করার একটি কৌশল। এটি প্রেরণকারী বা রাউটারগুলিতে বিশেষভাবে কার্যকর যেখানে ফাংশনটি ব্যবহার করা হবে ব্যবহারকারীর ইনপুটের উপর নির্ভর করে।
console.log() একটি অন্তর্নির্মিত পদ্ধতি যা কনসোলে বার্তা আউটপুট করে। এই প্রসঙ্গে, এটি ডিবাগিং এবং Node.js পরিবেশে গতিশীল ফাংশন ফলাফল প্রদর্শনের জন্য ব্যবহৃত হয়।
npm install jest --global এই কমান্ডটি বিশ্বব্যাপী জেস্ট টেস্টিং ফ্রেমওয়ার্ক ইনস্টল করে। এটি বিকাশকারীদের চালানোর অনুমতি দেয় যেকোন ডিরেক্টরি থেকে, নিশ্চিত করে যে সমস্ত পরীক্ষা ফাইল ধারাবাহিকভাবে আচরণ করে।
farewell: (name) =>farewell: (name) => `Goodbye, ${name}!` এই সিনট্যাক্স একটি বস্তুর মধ্যে একটি তীর ফাংশন তৈরি করে। এটি প্রদর্শন করে যে কীভাবে সংক্ষিপ্ত ফাংশনগুলি গতিশীলভাবে ব্যক্তিগতকৃত বার্তাগুলি ফেরত দিতে ব্যবহার করা যেতে পারে।

জাভাস্ক্রিপ্টের বিকল্প ফাংশন আমন্ত্রণে আরও গভীরে ডুব দেওয়া

উপরে প্রদত্ত উদাহরণ স্ক্রিপ্টগুলি জাভাস্ক্রিপ্ট ফাংশনগুলিকে এমনভাবে কল করার বিভিন্ন পদ্ধতি অন্বেষণ করে যা ঐতিহ্যগত বন্ধনী-ভিত্তিক সিনট্যাক্স থেকে আলাদা। এই উদাহরণগুলির পিছনে মূল ধারণাটি হল ডেভেলপাররা কীভাবে ফাংশনগুলি ব্যবহার করতে পারে তা প্রদর্শন করা বা শ্রেণী-ভিত্তিক কাঠামো। প্রথম স্ক্রিপ্টে, আমরা দেখিয়েছি কিভাবে বিশ্বব্যাপী অ্যাক্সেস করা যায় বন্ধনী স্বরলিপি সহ অবজেক্ট রানটাইমে গতিশীলভাবে ফাংশন আহ্বান করতে দেয়। এটি বিশেষত এমন পরিস্থিতিতে কার্যকর যেখানে ফাংশনের নামগুলি উড়ে গিয়ে নির্ধারণ করা হয়, যেমন কনফিগারেশন-চালিত অ্যাপ্লিকেশনগুলিতে।

দ্বিতীয় স্ক্রিপ্ট অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) ব্যবহার করে আরও কাঠামোগত পদ্ধতির প্রবর্তন করে। এখানে, আমরা একটি পদ্ধতি নামক একটি ক্লাস সংজ্ঞায়িত করি , যা নামে পরিচিত . এটি প্রদর্শন করে কিভাবে জাভাস্ক্রিপ্ট অ্যালিয়াসিংয়ের মাধ্যমে পদ্ধতির পুনর্ব্যবহারযোগ্যতা সমর্থন করতে পারে। এই কৌশলটির সাহায্যে, একই ফাংশন লজিক বিভিন্ন নামে পুনরায় ব্যবহার করা যেতে পারে, এটি কোড বজায় রাখা এবং প্রসারিত করা সহজ করে তোলে। ফ্রেমওয়ার্ক বা পুনঃব্যবহারযোগ্য লাইব্রেরি তৈরি করার সময় এই পদ্ধতিটি বিশেষভাবে উপকারী হতে পারে, যেখানে ব্যবহারের ক্ষেত্রে নামকরণের নিয়মগুলি পরিবর্তিত হতে পারে।

তৃতীয় বিভাগ এই বিকল্প আমন্ত্রণ পদ্ধতি ব্যবহার করে যাচাই করার উপর দৃষ্টি নিবদ্ধ করে জেস্ট ফ্রেমওয়ার্ক সহ। ইউনিট পরীক্ষাগুলি নিশ্চিত করে যে প্রতিটি ফাংশন বিভিন্ন পরিস্থিতিতে প্রত্যাশিত আচরণ করে, যা কোড নির্ভরযোগ্যতা বজায় রাখার জন্য অত্যন্ত গুরুত্বপূর্ণ। সঙ্গে পরীক্ষার ক্ষেত্রে সংজ্ঞায়িত করে এবং সঙ্গে ফলাফল জাহির , আমরা নিশ্চিত যে ফাংশন মত সতর্কতা প্রদর্শন সর্বদা সঠিক বার্তা ফেরত দিন। এই পদ্ধতিটি বিকাশ প্রক্রিয়ার প্রথম দিকে সমস্যাগুলি ধরতে সাহায্য করে, সময় বাঁচায় এবং বাগগুলিকে উত্পাদনে পৌঁছাতে বাধা দেয়।

চূড়ান্ত স্ক্রিপ্টটি Node.js-এর সাথে একটি ব্যাক-এন্ড ব্যবহারের ক্ষেত্রে অন্বেষণ করে, দেখানো হয় কিভাবে ইনপুটের উপর ভিত্তি করে ফাংশনগুলি গতিশীলভাবে প্রেরণ করা যায়। এই স্ক্রিপ্টটি একটি ফাংশন প্রেরক ব্যবহার করে নির্দিষ্ট ক্রিয়াকলাপ যেমন একজন ব্যবহারকারীকে শুভেচ্ছা জানানো বা বিদায় জানানোর জন্য। এটি হাইলাইট করে যে কীভাবে জাভাস্ক্রিপ্টের নমনীয়তা বিকাশকারীদের একটি দক্ষ, মডুলার উপায়ে যুক্তি সংগঠিত করতে দেয়। এটি এপিআই বা চ্যাটবটগুলির জন্য বিশেষভাবে উপযোগী, যেখানে ব্যবহারকারীর ইন্টারঅ্যাকশনগুলি ইনপুটের উপর নির্ভর করে বিভিন্ন অ্যাকশন ট্রিগার করতে হবে। এই সমস্ত উদাহরণে, আমরা পঠনযোগ্যতা এবং পুনঃব্যবহারযোগ্যতা উভয়ের উপর জোর দিয়েছি, কোডটি বোঝা এবং বজায় রাখা সহজ।

জাভাস্ক্রিপ্টে বিকল্প ফাংশন আহ্বানের তদন্ত করা

DOM মিথস্ক্রিয়া সহ প্রথাগত জাভাস্ক্রিপ্ট ব্যবহার করে ফ্রন্ট-এন্ড পদ্ধতি

// Example 1: Direct invocation of functions with standard syntax
function showAlert(message) {
    alert(message);
}
// Regular call with parentheses
showAlert("Hello, world!");

// Example 2: Dynamic function invocation using bracket notation
const functionName = "alert";
window[functionName]("Hello, world!");

// Explanation:
// - Here, window.alert is accessed using dynamic property access,
//   simulating a function invocation without parentheses.

বিকল্প ফাংশন কলের জন্য অবজেক্ট-ওরিয়েন্টেড সমাধানগুলি অন্বেষণ করা

মেথড অ্যালিয়াসিং সহ অবজেক্ট-ওরিয়েন্টেড জাভাস্ক্রিপ্ট

class MessageHandler {
    constructor() {
        this.greet = this.showAlert;
    }
    showAlert(message) {
        alert(message);
    }
}

// Creating an instance of the class
const handler = new MessageHandler();
// Using alias (greet) to call the showAlert function
handler.greet("Hello, world!");

ইউনিট টেস্টের সাথে ফাংশন আমন্ত্রণ যাচাই করা

জেস্ট ফ্রেমওয়ার্ক ব্যবহার করে জাভাস্ক্রিপ্ট ইউনিট টেস্টিং

// Install Jest globally using: npm install jest --global
// Function to be tested
function showAlert(message) {
    return message;
}

// Unit test with Jest
test('Function should return the correct message', () => {
    expect(showAlert("Hello, world!")).toBe("Hello, world!");
});

// Run tests with: jest
// Output should indicate that the test passed successfully

Node.js ব্যবহার করে ফাংশনের মতো আমন্ত্রণের ব্যাক-এন্ড হ্যান্ডলিং

Node.js এবং গতিশীল ফাংশন নির্বাচন সহ ব্যাক-এন্ড জাভাস্ক্রিপ্ট

// Example: Defining a function dispatcher in Node.js
const functions = {
    greet: (name) => `Hello, ${name}!`,
    farewell: (name) => `Goodbye, ${name}!`
};

// Function to dynamically call based on input
function callFunction(funcName, arg) {
    return functions[funcName] ? functions[funcName](arg) : 'Invalid function';
}

// Example usage
console.log(callFunction("greet", "Alice"));
console.log(callFunction("farewell", "Bob"));

জাভাস্ক্রিপ্ট ফাংশন কলে সিনট্যাক্স ভেরিয়েন্টের ভূমিকা অন্বেষণ করা

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

এই বিকল্প আমন্ত্রণ পদ্ধতিগুলির একটি মূল দিক হল কীভাবে তারা জাভাস্ক্রিপ্টের ফাংশনগুলিকে ব্যবহার করার ক্ষমতাকে ব্যবহার করে . এর মানে হল যে ফাংশনগুলি ভেরিয়েবলগুলিতে বরাদ্দ করা যেতে পারে, অ্যারেতে সংরক্ষণ করা যেতে পারে বা অন্য যে কোনও ডেটা টাইপের মতো অবজেক্টের বৈশিষ্ট্য হিসাবে যুক্ত করা যেতে পারে। এই আচরণটি গতিশীল ফাংশন আহ্বানকে সক্ষম করে, যেখানে বাহ্যিক ইনপুটগুলির উপর ভিত্তি করে রানটাইমের সময় একটি ফাংশনের নাম এবং আচরণ নির্ধারণ করা যেতে পারে। প্রদর্শিত হিসাবে, ব্যবহার করে বা ক্লাসের মধ্যে পদ্ধতিগুলি এই পদ্ধতির শক্তিকে চিত্রিত করে।

যদিও এই সিনট্যাক্সটি অপ্রচলিত মনে হতে পারে, এটি বন্ধনী সহ নিয়মিত ফাংশন কলের বিকল্প নয়। বরং, এটি বিভিন্ন প্রসঙ্গের অধীনে ফাংশন কল নির্মাণে জাভাস্ক্রিপ্টের নমনীয়তা প্রদর্শন করে। এটি বিশেষভাবে মূল্যবান যখন APIs লেখার সময় বা অ্যাপ্লিকেশান ডিজাইন করার সময় যেগুলিকে গতিশীলভাবে ক্রিয়া প্রেরণ করতে হবে৷ এই কৌশলগুলি নিরাপত্তা এবং পঠনযোগ্যতা সম্পর্কেও প্রশ্ন উত্থাপন করে কারণ অপব্যবহার বাগ বা দুর্বলতা প্রকাশ করতে পারে। অতএব, এই ধরনের নিদর্শনগুলি ব্যবহার করার সময় বিকাশকারীদের অবশ্যই সর্বোত্তম অনুশীলনের সাথে সৃজনশীলতার ভারসাম্য বজায় রাখতে হবে।

  1. আমি ব্যবহার করে একটি অস্তিত্বহীন ফাংশন কল করার চেষ্টা করলে কি হবে? ?
  2. যদি ফাংশনটি বিদ্যমান না থাকে তবে কলটি ফিরে আসবে অথবা আহ্বান করা হলে একটি ত্রুটি নিক্ষেপ করতে পারে.
  3. আমি কি কঠোর মোডে এই পদ্ধতি ব্যবহার করতে পারি?
  4. হ্যাঁ, কিন্তু মোড কিছু নিয়ম প্রয়োগ করে, যেমন অঘোষিত ভেরিয়েবল নিষিদ্ধ করা, ত্রুটি প্রতিরোধ করতে।
  5. ক্লাস-ভিত্তিক অ্যালিয়াসিং ব্যবহার করা কি একটি ভাল অনুশীলন?
  6. এটি পঠনযোগ্যতা এবং পুনঃব্যবহারযোগ্যতার জন্য সহায়ক হতে পারে তবে অন্যান্য বিকাশকারীদের বিভ্রান্তি এড়াতে ভালভাবে নথিভুক্ত করা উচিত।
  7. গতিশীলভাবে ফাংশন আহ্বান করার সময় আমি কীভাবে ব্যবহারকারীর ইনপুট যাচাই করব?
  8. সর্বদা নিরাপত্তা ঝুঁকি এড়াতে ইনপুট যাচাই করুন, যেমন কমান্ড ইনজেকশন ব্যবহার করে বা পরিচিত ফাংশন নামের জন্য বিবৃতি।
  9. এই কৌশল কর্মক্ষমতা প্রভাবিত করতে পারে?
  10. হ্যাঁ, যেহেতু ফাংশনগুলিকে গতিশীলভাবে সমাধান করার জন্য অতিরিক্ত লুকআপের প্রয়োজন হয়, তাই কর্মক্ষমতা-সংবেদনশীল পরিস্থিতিতে সেগুলিকে বিচারের সাথে ব্যবহার করুন৷
  11. ইভেন্ট পরিচালনার জন্য এই পদ্ধতিটি ব্যবহার করা কি সম্ভব?
  12. হ্যাঁ, ইভেন্ট হ্যান্ডলারকে গতিশীলভাবে বরাদ্দ করা সাধারণ, যেমন ব্যবহার করা একাধিক ইভেন্টের জন্য।
  13. এই বিকল্প কল পদ্ধতির downsides কি কি?
  14. সবচেয়ে বড় ঝুঁকির মধ্যে রয়েছে কোড পঠনযোগ্যতার সমস্যা এবং সতর্কতার সাথে ব্যবহার না করলে রানটাইম ত্রুটির সম্ভাবনা বৃদ্ধি।
  15. আমি কিভাবে দুর্ঘটনাজনিত গ্লোবাল ফাংশন আহ্বান প্রতিরোধ করতে পারি?
  16. ব্যবহার করুন অথবা বৈশ্বিক সুযোগ দূষণ এড়াতে অবিলম্বে ফাংশন এক্সপ্রেশন (IIFE) আহ্বান করা হয়েছে।
  17. এই কৌশলগুলি কি আধুনিক জাভাস্ক্রিপ্ট ফ্রেমওয়ার্কের সাথে সামঞ্জস্যপূর্ণ?
  18. হ্যাঁ, React এবং Vue-এর মতো ফ্রেমওয়ার্কগুলি প্রায়ই উপাদান বা ইভেন্টগুলি পরিচালনার জন্য গতিশীল ফাংশন অ্যাসাইনমেন্ট ব্যবহার করে।
  19. কোন সরঞ্জামগুলি গতিশীলভাবে আমন্ত্রিত ফাংশনগুলি ডিবাগ করতে সাহায্য করতে পারে?
  20. ব্যবহার করে অথবা ব্রাউজার ডেভেলপার টুলস এই ফাংশনগুলোর এক্সিকিউশন ট্রেসিং করতে সাহায্য করতে পারে।
  21. এই কৌশলটি কি টাইপস্ক্রিপ্টে ব্যবহার করা যেতে পারে?
  22. হ্যাঁ, কিন্তু টাইপস্ক্রিপ্ট ত্রুটি এড়াতে আপনাকে সম্ভাব্য ফাংশনের নাম এবং তাদের স্বাক্ষর ঘোষণা করতে হবে।
  23. এই পদ্ধতি ব্যবহার করে একটি বাস্তব কর্মক্ষমতা সুবিধা আছে?
  24. কর্মক্ষমতা সবসময় উন্নত নাও হতে পারে, কিন্তু এই কৌশলগুলি নমনীয়তা প্রদান করে, যা কোডটিকে আরও মডুলার এবং অভিযোজনযোগ্য করে তোলে।

এই নিবন্ধে পরীক্ষিত বিকল্প ফাংশন আহ্বান পদ্ধতিগুলি গতিশীলভাবে ফাংশন চালানোর জাভাস্ক্রিপ্টের ক্ষমতা প্রদর্শন করে। এই কৌশলগুলি অবজেক্ট বা ক্লাসের মধ্যে সম্পত্তি অ্যাক্সেস এবং ফাংশন অ্যালিয়াসিংয়ের মতো বৈশিষ্ট্যগুলিকে লাভ করে, যা বিকাশকারীদের আরও নমনীয় এবং পুনরায় ব্যবহারযোগ্য কোড লিখতে সক্ষম করে।

যাইহোক, যদিও এই পদ্ধতিগুলি অনন্য সমাধান দেয়, তারা চ্যালেঞ্জ নিয়ে আসে। ডেভেলপারদের নিরাপত্তা ঝুঁকি, যেমন কোড ইনজেকশন, এবং কোড পঠনযোগ্যতা নিশ্চিত করতে হবে। গতিশীল ফাংশন কলগুলি বুদ্ধিমানের সাথে ব্যবহার করা মডুলারিটি উন্নত করতে পারে, তবে ইনপুটগুলিকে যাচাই করা এবং কর্মক্ষমতা বিবেচনায় রাখা অপরিহার্য।

  1. বিস্তারিত ডকুমেন্টেশন প্রদান করে ফাংশন অবজেক্ট জাভাস্ক্রিপ্টে, ফাংশন কিভাবে প্রথম শ্রেণীর নাগরিক হিসাবে আচরণ করে তা ব্যাখ্যা করে।
  2. জাভাস্ক্রিপ্ট কভার করে উইন্ডো অবজেক্ট এবং কিভাবে বৈশিষ্ট্যগুলি বন্ধনী স্বরলিপি ব্যবহার করে গতিশীলভাবে অ্যাক্সেস করা যেতে পারে।
  3. গতিশীল ফাংশন আহ্বান কৌশল এবং এর মাধ্যমে কর্মক্ষমতা এবং নিরাপত্তার উপর তাদের প্রভাব অন্বেষণ করে JavaScript.info .
  4. জাভাস্ক্রিপ্ট লজিক যাচাই করার উদাহরণ সহ জেস্ট টেস্টিং ফ্রেমওয়ার্কের অন্তর্দৃষ্টি প্রদান করে ঠাট্টা ডকুমেন্টেশন .
  5. ক্লাস ব্যবহার এবং মডুলার প্যাটার্ন সহ আধুনিক জাভাস্ক্রিপ্ট অনুশীলনের উপর ব্যবহারিক নির্দেশিকা অফার করে freeCodeCamp এর সম্পূর্ণ জাভাস্ক্রিপ্ট হ্যান্ডবুক .