Почему объявления переменных в консоли продолжают возвращать "undefined"? - PullRequest
5 голосов
/ 09 июня 2011

Я использую последние версии Firefox (4.0.1) и Firebug (1.7.2).

Каждый раз, когда я вношу объявление переменной в консоль, возвращается выделенное курсивом предупреждение «undefined».

Так, например, если я введу "var x = 5;"тогда ответом будет «undefined», а не «5».

После этого, если я введу «x» в консоль, будет возвращено правильное значение 5.Однако ошибка / предупреждение немного неприятны, очень хотелось бы знать причину и решение, и если я только один испытываю это.

Интересно, если я не использую "var", нопросто объявите значение, используя «x = 5», тогда появится правильное поведение, и в консоли будет возвращено «5».

Ответы [ 2 ]

4 голосов
/ 09 июня 2011

(Это всего лишь предположение, я не являюсь экспертом в деталях языковых правил Javascript или в Firebug.)

Отзыв, который дает вам консоль, является результатом оценки строки, которую выпоступил.Я предполагаю, что объявление var x = ... - это утверждение, которое не имеет значения, в то время как простое присваивание (x = ...) соответствует наследию C и отношению "все является выражением"функциональные языки, выражение, которое оценивает присвоенное значение.

0 голосов
/ 09 июня 2011

Firebug сообщает о результате вычисления выражения, эквивалентного:

typeof eval ("var x = 5;");
"undefined"

typeof eval ("x = 5; ");
" число "

...