Что возвращает пустое тело функции в JS?Javascript

Форум по Javascript
Ответить
Anonymous
 Что возвращает пустое тело функции в JS?

Сообщение Anonymous »

Изучите ли пустое тело функции неявно return undefined в js? class = "Snippet-Code">

Код: Выделить всё

console.log((() => {})())< /code>
< /div>
< /div>
< /p>
Очевидно, что это правильно? Консоль выводит неопределенную < /code> в приведенном выше примере ... < /p>


// but let's do something crazy

console.log(((undefined) => undefined)("defined"));

console.log((() => {
var undefined = "defined";
return undefined;
})());


ОК, чтобы мы могли переоборудовать неопределенные локально (или глобально без Строгий режим) < /p>

Код: Выделить всё

console.log(((undefined) => {
var undefined = "defined_again";
})("defined"));


Но результат все еще не определен, поэтому кажется, что это не неявно возвращая неопределенное значение, а вместо этого обрабатывая все выражение как void(expr).
Похоже, это тоже так в TypeScript:

Код: Выделить всё

const result = (() => {})()
//    ^?: const result: void
Итак, если пустое тело функции неявно возвращает неопределенное значение, как указано в спецификации, то почему JS игнорирует лексическую область действия для неопределенного, если оно переобъявлено в функции body?
Очевидно, что в конце концов результат не определен, но меня больше интересует фактическое поведение реализации того, что неявно возвращается?
Возвращает ли пустое тело функции действительно что-нибудь?

Подробнее здесь: https://stackoverflow.com/questions/793 ... turn-in-js
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»