Sobes.tech
Intern

Кадом функсияҳо дар JavaScript вуҷуд доранд?

sobes.tech AI

Ҷавоб аз AI

Дар JavaScript мавҷуданд намудҳои зеринӣ функсияҳо:

  • Эълонҳои функсия (Function Declarations): Синтакси асосӣ барои муайян кардани функсия. Ҳангоми компилятсия онҳо hoisted мешаванд.

    function sayHello() {
      // Танаи функсия
      console.log("Салом!");
    }
    
  • Ифодаҳои функсия (Function Expressions): Функсия ба тағйирёбанда таъин карда мешавад. Ҳеҷ гоҳ hoisted намешаванд. Мумкин аст номдор ё беном бошанд.

    const greetUser = function(name) {
      // Танаи функсия
      console.log(`Салом, ${name}!`);
    };
    
  • Функсияҳои стрелка (Arrow Functions): Синтакси кӯтоҳтар, ки дар ES6 муаррифӣ шудааст. Хусусиятҳои махсус дар рафтори this.

    const add = (a, b) => a + b;
    
  • Роҳҳои объектӣ (Object Methods): Функсияҳое, ки ҳамчун хосиятҳои объект муайян шудаанд.

    const user = {
      name: "Иван",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Функсияҳои генераторӣ (Generator Functions): Функсияҳое, ки метавонанд иҷрои худро дар вақти муайян бо yield боздоранд ва идома диҳанд. Вайронкунандагони итераторро бармегардонанд.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Функсияҳои асинхронӣ (Async Functions): Функсияҳое, ки бо промисҳо кор мекунанд ва имкон медиҳанд, ки бо await интизор шаванд.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Функсияҳои сохтани (Constructor Functions): Функсияҳое, ки бо оператори new барои сохтани объектҳо истифода мешаванд. Рӯйи анъанавӣ пеш аз пайдоиши синфҳо.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Пётр", 30);
    
  • Функсияҳои кергардонӣ (Callback Functions): Функсияҳое, ки ҳамчун аргумент ба функсияҳои дигар дода мешаванд барои иҷро дар вақти муайян.

    function processArray(arr, callback) {
      for (let i = 0; i < arr.length; i++) {
        callback(arr[i]);
      }
    }
    
    processArray([1, 2, 3], function(item) {
      console.log(item * 2);
    });
    
  • IIFE - Функсияҳои зуд-зуд иҷрошаванда (Immediately Invoked Function Expressions): Функсияҳое, ки фавран пас аз муайян шуданашон иҷро мешаванд. Барои сохтани доираи маҳаллӣ истифода мешаванд.

    (function() {
      // Код маҳаллӣ
      const secret = "асрор";
      console.log(secret);
    })();
    

Ҳар як навъи функсия хусусиятҳои худро дар синтаксис, доираи (this) ва сценарийҳои истифода дорад.