44-js return返回值,全局作用域,局部作用域,隐式作用域,变量的生命周期,delete释放内存

1.return返回值:函数执行后剩下结果就是返回值。

javascript 复制代码
      function fn(a,b,c){
        //return返回值
        return(a+b+c);
        // console.log("aaa");     //return之后的值都不在执行了
        // alert("bbb");           //return之后的值不在执行了
      }
      console.log(fn(1,2,3)*10);

2.作用域

查找变量的时候,会从当前作用域开始查找,如果当前作用域查找不到,逐层(外层)向上查找

2.1全局作用域

javascript 复制代码
      var a = 1;       //全局变量,在任何位置都可以找到的变量
      function fn(){
        console.log(a);
      }
      fn();
      console.log(a);

2.2局部作用域

javascript 复制代码
      function fn(){
        var a = 1;       //局部变量,只能在当前的作用域里面使用
        console.log(a);
      }
      fn();
      console.log(a);

2.3隐式全局变量

在函数体内部,没有使用var声明的变量

javascript 复制代码
      function fn(){
        var a = 1;
        b = 2;        //隐式全局变量
      }
      fn();
      //隐式全局变量,会在当前函数体调用以后,变成全局变量
      console.log(b); //2
      console.log(a); //报错

var a = b = 1;

javascript 复制代码
      function fn(){
        var a = b = 1;
        //var a,b,c=1;      只有c被赋值了
        // var a = 1;       局部变量     相当于
        // b = 1;           隐式全局变量
      }
      fn();
      console.log(b);   //1
      console.log(a);   //报错

3.变量的生命周期

全局变量和局部变量都是从被声明时开始;全局变量,直到页面关闭以后结束;局部变量,所在函数体调用以后结束

3.1全局变量生命周期

javascript 复制代码
      var a = 10;       //全局变量
      function fn(){
        a++;
        console.log(a);
      }
      fn();
      fn();
      fn();

3.2局部变量生命周期

javascript 复制代码
      function fn(){
        var a = 10;     //局部变量
        a++;            //运行一次之后此行和上一行失效
        console.log(a);
      }
      fn();
      fn();
      fn();

3.3释放内存 delete删除

一个页面当中,局部变量多更好,局部变量用完可以及时删除,自动释放内存,全局变量会一直在很占内存

javascript 复制代码
      // delete删除
      var a = 1;
      b = 2;
      delete a;
      delete b;
      console.log(a); //1,  a没被删除
      console.log(b); //报错,b被删除了
      //显示全局变量无法通过delete删除
相关推荐
集成显卡3 小时前
Bun v1.3.6 发布:内置 Tarball 归档支持、JSONC 解析、Bundle 分析增强等重磅更新!
javascript·新版本·bun.js
奔跑的web.3 小时前
TypeScript Enum 类型入门:从基础到实战
前端·javascript·typescript
盐真卿4 小时前
python2
java·前端·javascript
梦梦代码精4 小时前
BuildingAI vs Dify vs 扣子:三大开源智能体平台架构风格对比
开发语言·前端·数据库·后端·架构·开源·推荐算法
刘一说4 小时前
Vue3 组合式 API(Composition API):逻辑复用的革命性实践
vue.js·vue
seabirdssss5 小时前
《bootstrap is not defined 导致“获取配置详情失败”?一次前端踩坑实录》
前端·bootstrap·html
kgduu5 小时前
js之表单
开发语言·前端·javascript
摘星编程6 小时前
React Native for OpenHarmony 实战:Picker 选择器组件详解
javascript·react native·react.js
摘星编程6 小时前
React Native for OpenHarmony 实战:VirtualizedList 虚拟化列表
javascript·react native·react.js
谢尔登7 小时前
Vue3 响应式系统——computed 和 watch
前端·架构