它会在这种情况下生成100个不同的实例变量吗(JS vs c++) ?

Will it generate 100 distinct instance variables in this condition(JS vs C++)?

本文关键字:变量 JS vs c++ 实例 这种情况下 100个      更新时间:2023-10-16

记得:
C++:

for(int i= 0; i< 100;i++)
{
   int number= 3; 
}

我们将有100个不同的实例变量具有相同的名称(但是占用100倍的内存作为一个变量),但是c++中的变量是块作用域,所以100个变量将在循环结束时被回收。
与Javascript相比:
JS:

for(var i=0; i < 100 ;i++)
{
    var number= 3;
}
  1. 会产生100个不同的变量吗?或者我们只有一个变量number,它的值是3
    我的意思是这些变量实际占用了多少内存?

  2. 如果for循环没有被function(){}包装,那么回收给出变量的内存的机制是什么?

  3. 这是原始类型变量。如果变量是对象,会有什么不同吗?

JavaScript中的变量-不像C -是函数作用域,所以你重用相同的变量:

  1. 只创建一个变量
  2. 如果它没有被封装在一个函数中,number将是全局的,但仍然只会创建一次。
  3. 值不重要。变量总是函数作用域。