Это ошибка в JavaScript, Nodejs и/или Deno? [дублировать]Javascript

Форум по Javascript
Ответить
Anonymous
 Это ошибка в JavaScript, Nodejs и/или Deno? [дублировать]

Сообщение Anonymous »

Javascript, как правило, позволяет выполнять простое выражение, даже если он не имеет побочных эффектов и, как правило, довольно бесполезен. Например, следующие приведены действительные файлы JavaScript: < /p>
42
< /code>
и < /p>
'abc'
< /code>
Я имею в виду, что если я положу один из них в файл и выполняю его через: < /p>
node file.js
< /code>
< /p>
deno run file.js
< /code>
Я не получаю ошибок (и, конечно, нет вывода). < /p>
Однако, если я помещаю следующее выражение в файл Javascript, я получаю ошибку при попытке выполнить файл с помощью любого из вышеуказанных методов: < /p>
function*(line) {
yield 42;
return;
}
< /code>
nodejs говорит: «Синтаксиртор: операторы функций требуют имени функции»
deno говорит: «Исходный код модуля не может быть проанализирован: ожидаемый идентификатор ...» < /p>
Однако это будет проанализировать и выполнять без ошибки: < /p>
.let f = function*(line) {
yield 42;
return;
}
< /code>
Здесь нет идентификатора в операторе функции - анонимная функция создается и присваивается переменной f. Итак, почему идентификатор был необходим ранее?let f = function*(line) {
yield 42;
return;
}

console.log(f.toString());
< /code>
Код анализирует и выполняет без ошибки. Тем не менее, он выводит это: < /p>
function*(line) {
yield 42;
return;
}
< /code>
, который, как вы можете видеть выше, считается недействительным JavaScript. Итак, я создал совершенно действительную функцию, но метод JavaScript Buildin ToString () вернул недопустимый код JavaScript! И, конечно, я не мог выполнить его, так как это неверный код JavaScript.

Подробнее здесь: https://stackoverflow.com/questions/796 ... nd-or-deno
Ответить

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

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

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

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

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