JavaScript-de funksional ifadeleriň nyuanslary

Funksion Ifade atlandyrmasy boşuna berilmedik. Bu hakykatdanam şuny aňladýar - ýagny şeýle funksiýalar käbir ifadäniň bir bölegidir.

Mysal üçin, biz käbir setir we atsyz funksiýany goşup bileris:

javascriptlet str = 'str' + function() {return 3;};
console.log(str); // 'strfunction() {return 3;}' görkezer

Näme üçin biz şeýle bir geň netije görýäris, 3 san däl? Sebäbi ikinji goşulyjy - bu funksiýanyň işiniň netijesi däl, onuň çyndan kody (hatda biz bu funksiýany çagarmadyk, diňe ýazdyk).

Ýagny funksional ifade atlandyrmasy şuny aňladýar, ýagny şeýle bir funksiýa käbir bir ifadäde gatnaşýar.

Üýtgeýjä bellik etmekem ifadedir:

javascriptlet func = function() {
  console.log('!');
};

Şeýle hem, mysal üçin, funksiýany console.log parametri hökmünde geçirip bileris we ol çyndan kody konsola görkezer - bu hem ifade hasap ediler:

javascriptconsole.log(function() {return 3;});

Bu näme üçin möhüm: sebäbi Funksiýa Deklarasiýasy we Funksion Ifade arasyndaky tapawut doly şeýle däl, ýagny birinji funksiýa ady bilen döredilýär, ikinji bolsa başlangyçda ada eýe däl. Şeýle däl.

Mysal. Şu ýerde bizde ada eýe däl funksiýa bar, ýöne şol bir wagtyň özünde hiç hili ifadede gatnaşmaýar (ýagny ona hiç hili hereket amal edilmeýär, ýöneje düşündirişde):

javascript/*
  Bu funksiýa Funksiýa Deklarasiýasy bolar,
  ýöne sintaktik ýalňyşlyk bilen:
*/
function() {
  console.log('!');
}

Şeýle kody ümumen ýalňyşlyk görkezer! Näme üçin: şeýle bolsa funksiýa hiç hili ifadede gatnaşmaýar, şonda brauzer ony Funksiýa Deklarasiýasy hasaplaýar, ýöne onuň adyny tapmaýar we ýalňyşlyk görkezýär.

Ýalňyşlygyň ýitmegi üçin, funksiýanyň käbir ifadäniň bir bölegi bolmagyna mejbur etmeli. Mysal üçin, onyň öňünde + amalyny ýazýarys:

javascript+function() { // şeýle kod dogry
  console.log('!');
};

Bu nädip işleýär: + amaly özi hiç zat etmeýär, bu diňe şeýle ýazmak ýaly 3 sanynyň ýerine +3 san - ýöňke, ýöne hiç zat üýtgetmeýär.

Ýöne funksiýa bilen bolsa - üýtgedýär. Indi bizim funksiýamyz diňe ýazylyp galmaýar, eýsem ifadede gatnaşýar. Şonuň üçin indi ýalňyşlyk bolmaz. Funksiýanyň işleniş netijesi hem bolmaz, hatda biz ony diňe ýazdyk, ýöne çagarmadyk.

+-iň ýerine islendik zat ýazyp bolýar. Mysal üçin:

javascript-function() { // şeýle kod dogry
  console.log('!');
};

!function() { // şeýle kod dogry
  console.log('!');
};

Şeýle hem, funksiýamyzy aýlawly skobkalyryp alyp bolýar, bu ýagdaýda hem ol funksional ifade bolar:

javascript(function() { // şeýle kod dogry
  console.log('!');
});
Задание 1

Görkezilen funksiýanyň Funksiýa Deklarasiýasy ýa-da Funksion Ifade dygyny kesgitläň:

javascriptfunction func() {
  console.log('!');
}
Задание 2

Görkezilen funksiýanyň Funksiýa Deklarasiýasy ýa-da Funksion Ifade dygyny kesgitläň:

javascriptlet func = function() {
  console.log('!');
}
Задание 3

Görkezilen funksiýanyň Funksiýa Deklarasiýasy ýa-da Funksion Ifade dygyny kesgitläň:

javascript+function() {
  console.log('!');
}
Задание 4

Görkezilen funksiýanyň Funksiýa Deklarasiýasy ýa-da Funksion Ifade dygyny kesgitläň:

javascript!function func() {
  console.log('!');
}
Задание 5

Görkezilen funksiýanyň Funksiýa Deklarasiýasy ýa-da Funksion Ifade dygyny kesgitläň:

javascript-function func() {
  console.log('!');
}
Задание 6

Görkezilen funksiýanyň Funksiýa Deklarasiýasy ýa-da Funksion Ifade dygyny kesgitläň:

javascript1 + function func() {
  console.log('!');
}
Задание 7

Görkezilen funksiýanyň Funksiýa Deklarasiýasy ýa-da Funksion Ifade dygyny kesgitläň:

javascript(function func() {
  console.log('!');
})
Задание 8

Görkezilen funksiýanyň Funksiýa Deklarasiýasy ýa-da Funksion Ifade dygyny kesgitläň:

javascriptconsole.log(
  function() {
    console.log('!');
  }
);