Задать вопрос
@yuriytkachenko

Создается ли объект после объявления переменной? Если да, то как он выглядит?

Говорят что в js все есть объект.

Вот например, у нас в коде еще ничего нет мы просто создали переменную x и присвоили ей значения:
<script>

var x = 3;

</script>

У меня есть вопросы
1) В этот момент когда создали переменную и присвоили ей значения, создался неявно объект?
2) Если да, то имя переменной становится именем объекта? а начение переменной (3) это значение свойства какого-то?

Тоесть:
создается неявно обьект:
x = {
number: 3
};

Правильно или нет?

3) Если да, то интересно как называется свойство так как я написал - number, или есть какое-то специальное имя в js?
4) Если переменная это ячейка памяти в компьютере то объект который создан переменной также можно назвать ячейкой памяти?
  • Вопрос задан
  • 220 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
Вот что происходит в вашем примере поэтапно:

var x = 3;

  1. Вычисляется выражение справа – тип number, что не объект. Результат сохраняется в памяти, теперь его можно получить по ссылке;
  2. Идентификатор "x" сопоставляется с созданной выше ссылкой, регистрируется переменная (тоже не объект);
  3. Программист Вася лезет за значением переменной и получает... ну вы поняли, число.

Где объекты? А нет их тут. Объекты из примитивов в JS получаются только тогда, когда вы их создаёте явно:

var y = new Number(3);

...или обращаетесь к методу соответствующего объекта через примитив:

var z = 3;

z.toString() // то, что написали вы
(new Number(z)).toString() // то, что было исполнено

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

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
23 янв. 2025, в 12:21
90000 руб./за проект
23 янв. 2025, в 12:08
10000 руб./за проект
23 янв. 2025, в 12:07
20000 руб./за проект