Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Какое из объявлений функции невалидное? (https://javascript.ru/forum/misc/52136-kakoe-iz-obyavlenijj-funkcii-nevalidnoe.html)

factory_girl 05.12.2014 11:42

Какое из объявлений функции невалидное?
 
Добрый день. В тесте по программированию встретился вопрос:
Какое из обявлений функции в Javascript - невалидное?
а) function () {}
б) function () {}()
в) !function () {}()
г) (function () {})()
Я впадаю в ступор. Какое и почему?)
Насколько я знаю, единственное верное объявление - function () {}
Но вопрос подразумевает, что 3 варианта - верные и только 1 - неверный.

Safort 05.12.2014 12:09

factory_girl,
тут есть много нужной инфы http://learn.javascript.ru/function-...81%D1%82%D0%B5
Теперь понятнее?)

jsnb 05.12.2014 12:27

Цитата:

Сообщение от factory_girl
Но вопрос подразумевает, что 3 варианта - верные и только 1 - неверный.

Вот в этом вся беда тестов. По сути 2 варианта из предложенных вызовут ошибку. Поэтому надо гадать, а что именно имел ввиду автор теста.

рони 05.12.2014 12:47

jsnb,
интересно откуда 2 а не 1

danik.js 05.12.2014 13:07

Цитата:

Сообщение от jsnb
Вот в этом вся беда тестов

Беда тестов в том что их часто составляют какие-то дибилы.

jsnb 05.12.2014 13:10

Цитата:

Сообщение от рони
jsnb,
интересно откуда 2 а не 1

Сам проверь все варианты. ;)

Safort 05.12.2014 13:10

рони,
наверное jsnb имеет ввиду первые два варианта. А всё из-за того, что у них не указано имя.

рони 05.12.2014 13:31

:write:
Цитата:

function () {} function statement requires a name
function () {}() function statement requires a name
!function () {}() (intermediate value)(...) is not a function
(function () {})()

jsnb 05.12.2014 14:29

Цитата:

Сообщение от рони
!function () {}() (intermediate value)(...) is not a function

Это где так?

рони 05.12.2014 14:47

jsnb,
Firebug в firefox

Aetae 05.12.2014 14:50

рони, да ну...

jsnb 05.12.2014 14:52

Цитата:

Сообщение от рони
jsnb,
Firebug в firefox

Странно, у меня FF даже не пикнул. Какая версия?

Safort 05.12.2014 14:52

рони,
Цитата:

Firebug в firefox
!function () { alert('Файрбаг был не прав') }();

jsnb 05.12.2014 14:54

А, наверно он 2 строки подряд без точки с запятой написал:
!function () {}()
(function () {})()

и получилось:
!function () {}()(function () {})()

рони 05.12.2014 15:15

Цитата:

Сообщение от jsnb
2 строки подряд

да ... если ; то нормально


Часовой пояс GMT +3, время: 09:38.