admin管理员组

文章数量:1396448

In this situation var foo;

Will "foo" point to somewhere in the memory that contains the value undefined?

Does undefined occupy memory in javascript? Does undefined mean that there is no memory address assigned to a specific label?

In this situation var foo;

Will "foo" point to somewhere in the memory that contains the value undefined?

Does undefined occupy memory in javascript? Does undefined mean that there is no memory address assigned to a specific label?

Share Improve this question asked Aug 21, 2021 at 13:38 Haitham6373Haitham6373 1,2992 gold badges10 silver badges11 bronze badges 1
  • What do you mean by "Will "foo" point to somewhere in the memory"? – Bergi Commented Aug 21, 2021 at 14:12
Add a ment  | 

3 Answers 3

Reset to default 5

There's two parts to your question. The variable itself and multiple copies of undefined value.

First, variables can take space in memory. It's not always known if they do take space since pilers can optimize your code in a way that they might not do so (or even straight up removed).

As of the other part of your question. Per the specification there's only one undefined value but the specification does not require the implementation to hold a unique representation of undefined in memory. So any implementation can hold multiple copies of the value so long as the language semantics can be guaranteed.

Edit: Also, the specification does not specify its value representation in memory, so that's also an implementation detail.

Any kind of variable you create will occupy memory space, regardless if it was created with let, const or var. When you do it, you're literally telling JS to reserve memory space because you will store values in that variable. undefined is a value in JavaScript, therefore, yes, it does consume memory.

There are tests regarding performances between let and var that leads to some discussion about which is faster (see this stack post), and const is remended for values you have that won't change.

Any variable you declare in javascript will be assigned to a memory location. if you don't initialize the variable while declaring, then it will be assigned to undefined by Javascript. which means you declared a variable and it's not been assigned yet.

undefined is a value in javascript. You can read here

本文标签: frontendDoes quotundefinedquot occupy memory in javascriptStack Overflow