首页 > 其他分享 >下列代码存在几个变量没有被回收?( )

下列代码存在几个变量没有被回收?( )

时间:2023-11-11 12:01:09浏览次数:31  
标签:闭包 变量 回收 add 下列 var 全局变量

下列代码存在几个变量没有被回收?( )

var i = 1;
var i = 2;
var add = function() {
    var i = 0;
    return function()
{
        i++;
        console.log(i);
    }
}();
add();

3个

1:全局变量i不会被回收

2:全局变量add不会被回收

3:闭包引用的局部变量i不会被回收

代码回收规则如下:
1.全局变量不会被回收。
2.局部变量会被回收,也就是函数一旦运行完以后,函数内部的东西都会被销毁。
3.只要被另外一个作用域所引用就不会被回收

有3个变量没有被回收,
首先是全局变量中的i,第二行会覆盖掉第一行,因此只有1个。
第二个是var add,这个变量也没有回收,他定义了一个匿名函数,并将它赋给了add。
第三个就是闭包中的变量i,闭包中的局部变量是不会被回收的,因此是3个变量没有被回收。

标签:闭包,变量,回收,add,下列,var,全局变量
From: https://www.cnblogs.com/longmo666/p/17825747.html

相关文章

  • 【3.0】Go语言语法初识之变量
    【零】注释语法注释就是对代码的解释和说明,其目的就是让人们更加轻松的了解代码。注释是开发人员的一个重要的习惯。单行注释使用//开头多行注释使用/*开头*/结尾//package定义包名main包名packagemain//import引用库fmt库名import"fmt"//func定......
  • JMeter进阶使用变量及BeanShell 预处理程序实现复杂调试
    JMeter进阶使用变量及BeanShell预处理程序实现复杂调试有一些测试需要做一些预处理程序才能做http请求,在JMeter下可以通过使用参数+BeanShell预处理程序加工后再发起请求即可。例oauth服务需要通过username,password,client_id,client_secret,grant_type进行请求,这里的密码涉及安......
  • 已知arr = [1,2,NaN,1,4,2,NaN],现为输出arr的不重复元素(重复元素只输出一次),则下列程
    varnewArr=[];for(vari=0;i<arr.length;i++){if(①){newArr.push(arr[i]);}}console.log(newArr);AnewArr.indexOf(arr[i])==-1B!newArr.indexOf(arr[i])==-1CnewArr.includes(arr[i])D!newArr.includes(arr[i])正确答案:DindexOf()方法与incl......
  • 银河麒麟系统下openjdk安装及环境变量设置
    1、openjdk安装:A、检查java版本,终端命令:java-versionB、更新麒麟系统软件包列表,终端命令:sudoaptupdate查看列表 -->:aptlist  升级C、银河麒麟桌面环境提供了OpenJDK作为Java的官方实现(default-jdk,openjdk-11-jdk,openjdk-17-jdk等版本),终端命令:sudoa......
  • 下列哪些事件不支持冒泡?()
    下列哪些事件不支持冒泡?()AresizeBclickCblurDmouseleave正确答案:ACD不支持冒泡:“俺(unload)”“妈(mouseenter)妈(mouseleave)不(blur)让(resize)浪(load)费(focus)”......
  • 已知数组arr = [2,20,3,12,9],现在要对数组进行遍历,只要数组存在大于10的元素,则输出tru
    Avarres=arr.filter((val1,val2)=>{returnval1>10;})console.log(res);Bvarres=arr.some((val1,val2)=>{returnval1>10;})console.log(res);Cvarres=arr.every((val1,val2)=>{returnval1>10;})console.log(res);Dvarres......
  • C++中的const成员变量和成员函数
    在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定。const可以用来修饰成员变量和成员函数。const成员变量const成员变量的用法和普通const变量的用法相似,只需要在声明时加上const关键字。初始化const成员变量只有一种方法,就是通过构造函数的初始化列表,这点在......
  • 下列表达式中,结果为NaN的是(D)
    A123+nullB123/0C123+'1';D123+undefined;对于“+”运算,如果一端为字符串,则另一端会被转为字符串进行字符串之间的连接,因此C选项结果为1231,如果一端为Number类型,另一端为原始数据类型,则另一端会被转为Number类型,再相加,null会被转为0,A选项结果为123,undefined会被......
  • Linux 环境变量配置的 6 种方法
    Linux环境变量配置在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。下面所有例子的环境说明如下:系统:Ubuntu14.0用户名:uusama需要配置MySQL环境变量路径:/home/uusama/mysql/binLinux读取环境变量读取环境变量的方法:export命令显示当......
  • win系统下openjdk-maven-idea环境变量设置
    1、idea安装时可以选择自动添加到环境变量:2、openjdk设置环境变量:JAVA_HOME --》D:\java\jdk21path --》 %JAVA_HOME%\bin;%JAVA_HOME%\jre\binclasspath --》 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar命令检查安装版本 --》 java-v......