Išraiška kairėje funkcijos JavaScript kalboje

Panagrinėkime tokį kodą:

javascript+function func() {
  console.log('!');
}

Kaip jau žinote, ši funkcija yra funkcinė išraiška, nepaisant to, kad ji turi pavadinimą (mes jau išsiaiškinome, kad pavadinimo buvimas apskritai ne kriterijus). Pašalinkime šį pliusą - ir gausime Function Declaration:

javascriptfunction func() {
  console.log('!');
}

Pastatykime + eilutėje prieš funkciją - ji vėl taps Function Expression:

javascript+
function func() {
  console.log('!');
}

O dabar po pliuso pastatykime skaičių 1 ir kabliataškį - mūsų funkcija taps Function Declaration:

javascript+1;
function func() {
  console.log('!');
}

Kodėl taip: nes pirmoje eilutėje parašyta viena baigta komanda, uždarota kableliu su kabliataškiu. Todėl ši komanda niekaip neveikia mūsų funkcijos.

Tiesą sakant, kabliataškį galima pašalinti, juk JavaScript kalboje jis nėra privalomas - funkcija vis tiek liks Function Declaration:

javascript+1
function func() {
  console.log('!');
}

O jei po 1 prikibsime dar vieną pliusą, tai funkcija taps Function Expression:

javascript+1+
function func() {
  console.log('!');
}

Kodėl taip: nes pirmoje eilutėje nebaigta išraiška - yra pliusas ir po jo nieko. Todėl JavaScript interpretatorius mano, kad šis pliusas priklauso eilutei žemiau, tai yra mūsų funkcijai.

Jei pirmoje eilutėje yra baigta išraiška, tai JavaScript automatiškai pastato jai kabliataškį ir ši išraiška niekaip neveikia mūsų funkcijos.

Задание 1

Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:

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

Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:

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

Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:

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

Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:

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

Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:

javascript-1-
function func() {
  console.log('!');
}