Javascript что будет выведено в консоль
Перейти к содержимому

Javascript что будет выведено в консоль

  • автор:

Что будет выведено в консоль?

Коллеги, всем привет. Не понимаю, почему в консоль будет выведено man, undefined?

var a = 'hello'; function b() < if (false) < var a = 'world'; >else < var b = 'man'; >console.log(b); console.log(a); > b();

По-поводу вывода значения переменной b = man мне понятно, а вот почему переменная а будет неопределена, не понимаю. В моем понимании а должно быть равно hello, т.к. при вызове функции b() значение переменной а должно взяться из внешней переменной, разве не так?

Отслеживать

6,788 6 6 золотых знаков 11 11 серебряных знаков 30 30 бронзовых знаков

задан 8 дек 2023 в 6:55

23 6 6 бронзовых знаков

Не зная JS сразу предположу, что a = undefined , т.к. блок var a = «hello»; не был затронут, соответственно переменной этой нет, что логично, по крайней мере в C# изначально идет проверка на наличие переменной в текущем scope, а потом уже снаружи (в классе, например), что подтверждается, если написать не console.log(a) , а console.log(this.a)

Javascript что будет выведено в консоль

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

JavaScript собеседование #46: Поле length у JS функций

javascript interview question #46

Что хранится в поле length у JavaScript функций? Что будет выведено в консоль?

Поле length есть у многих сущностей в JavaScript.

Например, у массивов, в нем хранится количество элементов.

const arr = ['a', 'b', 'c']; console.log(arr.length); // 3 

У строк — количество символов, длина строки.

const welcomeMessage = 'Hello!'; const goodbyeMessage = 'Goodbye!'; const emptyString = ''; console.log(welcomeMessage.length); // 6 console.log(goodbyeMessage.length); // 8 console.log(emptyString.length); // 0 

У объектов нет поля length по умолчанию.

const user = < name: 'Jack', age: '32'>; console.log(user.length); // undefined 

А у функций — оно есть. И хранится там совсем не “длина функции”, а количество параметров.

const sum = (a, b) => a + b; const log = (s) => console.log(s); const noop = () => <>; console.log(sum.length); // 2 console.log(log.length); // 1 console.log(noop.length); // 0 

ОТВЕТ: В поле length у всех JavaScript функций хранится количество параметров определенное при создании функции. Поэтому, на экране появятся значения:

Так как у функции sayHello один параметр, а у confirmSubscription параметров нет.

  • �� НАЧАТЬ ОБУЧЕНИЕ ��
  • Собеседование JavaScript
  • JavaScript

Console.log()

Список объектов JavaScript для вывода. Объекты выводятся в том порядке, в котором они были указаны при вызове метода. Пожалуйста, обратите внимание, что если вы логируете объекты в последних версиях Chrome и Firefox, в консоль залогируется не значение объекта, а ссылка на него. Это означает, что, возможно, в консоль будет выведено не значение объекта на момент вызова console.log() , а будет выведено значение объекта на момент открытия консоли.

Строка JavaScript, содержащая 0 и более подстановочных символов для замены (см. subst1 . substN ).

JavaScript-объекты, с помощью которых произойдёт замена подстановочных символов в msg . Это даст вам дополнительный контроль над форматом вывода.

Больше подробностей смотрите в разделе Вывод текста в консоль (en-US) документации console .

Спецификация

Specification
Console Standard
# log

Совместимость с браузерами

BCD tables only load in the browser

Отличия от console.dir()

Вы можете спросить какая разница между console.dir() и console.log(). Это полезное отличие.

  • console.log выводит элемент как HTML-дерево
  • console.dir выводит элемент как JSON-объект

А именно, console.log даёт специальное обращение к DOM-элементам, тогда как console.dir — нет. Это особенно полезно, когда нужно видеть полное представление DOM JS-объектов.

Больше информации об этой и других функциях в Chrome Console API reference.

Логирование объектов

Не используйте console.log(obj); , Используйте console.log(JSON.parse(JSON.stringify(obj))); .

Так вы можете быть уверены, что видите значение obj в момент, его логирования.

Смотрите также

  • Opera Dragonfly documentation: Console
  • MSDN: Using the F12 Tools Console to View Errors and Status
  • Firebug wiki: Console API — Firebug поддерживает дополнительные возможности реализации console.log(), такие как styled logging.
  • NodeJS: Console API

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 16 нояб. 2023 г. by MDN contributors.

Your blueprint for a better internet.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *