НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗jsPmFTLE 237 of 505 menu

Выражение слева функции в JavaScript

Давайте рассмотрим следующий код:

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

Как вы уже знаете, эта функция является функциональным выражением, ни смотря на то, что у нее задано имя (мы уже выяснили, что наличие имени вообще не критерий). Уберем этот плюс - и получим Function Declaration:

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

Давайте поставим + на строчке перед функцией - она опять станет Function Expression:

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

А теперь после плюса поставим число 1 и точку с запятой - наша функция станет Function Declaration:

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

Почему так: потому что на первой строке написана одна законченная команда, закрытая точкой с запятой. Поэтому эта команда никак не влияет на нашу функцию.

На самом деле точку с запятой можно убрать, ведь в JavaScript она не обязательна - функция все равно останется Function Declaration:

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

А вот если после 1 влепить еще один плюс, то функция станет Function Expression:

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

Почему так: потому что на первой строчке незавершенное выражение - стоит плюс и после него ничего. Поэтому интерпретатор JavaScript считает, что этот плюс относится к строке ниже, то есть к нашей функции.

Если же на первой строке стоит завершенное выражение, то JavaScript автоматически ставит ему точку с запятой и это выражение никак не влияет на нашу функцию.

Определите, является ли представленная функция Function Declaration или Function Expression:

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

Определите, является ли представленная функция Function Declaration или Function Expression:

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

Определите, является ли представленная функция Function Declaration или Function Expression:

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

Определите, является ли представленная функция Function Declaration или Function Expression:

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

Определите, является ли представленная функция Function Declaration или Function Expression:

-1- function func() { console.log('!'); }
Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить