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) և օգտագործման դեպքերում։