У меня есть фон C, и я только начал узнавать о Javascript. В C, когда я создаю переменную и инициализирую ее (пример int foo
), пространство зарезервировано в стеке для моей переменной. Разные пространства зарезервированы для разных типов (пример int, bool, unsigned int, double
). В Javascript есть только один тип (var
) Я могу создать экземпляр в виде строкового литерала (пример var person="John Doe";
) или числа (пример var x=5;
). Как Javascript может хранить эти значения, не зная, сколько места потребуется выделить для переменной?Как javascript выделяет память?
3
A
ответ
1
Javascript динамически типизирован и использует автоматическое выделение и восстановление памяти. С точки зрения реализации вы можете себе представить, что каждая переменная является своего рода набором указателей данных и указателей функций; более точно, как указатель полиморфного базового класса в C++. Тем не менее, память для объектов управляется для среды среды выполнения и не требует ручного вмешательства. Скорее всего, какая-то сборка мусора.
Смежные вопросы
- 1. Как NSMutableData выделяет память?
- 2. Как вектор выделяет память
- 3. Как большой массив выделяет память?
- 4. Как компилятор выделяет память программе?
- 5. Откуда программа выделяет память?
- 6. массив выделяет незатребованную память
- 7. новое не выделяет память
- 8. malloc не выделяет память
- 9. Почему BitmapData.copyPixels выделяет память?
- 10. GCHandle.Alloc выделяет память?
- 11. Память выделяет и возвращает
- 12. struct c динамически выделяет память
- 13. Список C++ выделяет нерегулярную память
- 14. Почему новый [] выделяет дополнительную память?
- 15. C - функция, которая выделяет память
- 16. Действительно ли gdk_color_copy выделяет память?
- 17. Является ли макрос выделяет память?
- 18. CudaMallocManaged выделяет память на устройстве?
- 19. Как Java выделяет память для объектов?
- 20. Как malloc выделяет память менее 4 КБ?
- 21. Как строка выделяет память в куче?
- 22. Как компилятор выделяет память этой структуре?
- 23. Где и как ctime выделяет память?
- 24. Как платформа .NET выделяет память для OutOfMemoryException?
- 25. Как пространство пользователя linux выделяет память
- 26. Как c компилятор выделяет память для структур?
- 27. Как компилятор выделяет память на стеке
- 28. glDrawElements выделяет память и не освобождает ее
- 29. Где std :: vector выделяет свою память?
- 30. LLVM Найти каждую инструкцию, которая выделяет память
Javascript не выделяет память вообще, реализация Javascript делает. И вполне возможно, что разные реализации используют разные методы. – Kninnug
Тип выводится из контекста, и тип определяет память, необходимую для переменной. –
См. Эту статью [Обзор V8: представление объекта] (http://www.jayconrod.com/posts/52/a-tour-of-v8-object-representation) для обзора того, как движок JavaScript Javascript представляет Javascript объекты. –