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) жана колдонуу сценарийлеринде өзгөчөлүктөргө ээ.