Išraiška kairėje funkcijos JavaScript kalboje
Panagrinėkime tokį kodą:
+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:
function func() {
console.log('!');
}
Pastatykime + eilutėje prieš
funkciją - ji vėl taps Function Expression:
+
function func() {
console.log('!');
}
O dabar po pliuso pastatykime skaičių 1
ir kabliataškį - mūsų funkcija taps Function
Declaration:
+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:
+1
function func() {
console.log('!');
}
O jei po 1 prikibsime dar vieną
pliusą, tai funkcija taps Function Expression:
+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.
Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:
-
function func() {
console.log('!');
}
Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:
-1;
function func() {
console.log('!');
}
Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:
-1
function func() {
console.log('!');
}
Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:
1
function func() {
console.log('!');
}
Nustatykite, ar pateikta funkcija yra Function Declaration ar Function Expression:
-1-
function func() {
console.log('!');
}