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删除
相关推荐
hboot几秒前
💪别再迷茫!一份让你彻底掌控 TypeScript 类型系统的终极指南
前端·typescript
GISer_Jing18 分钟前
深入拆解Taro框架多端适配原理
前端·javascript·taro
毕设源码-邱学长26 分钟前
【开题答辩全过程】以 基于VUE的藏品管理系统的设计与实现为例,包含答辩的问题和答案
前端·javascript·vue.js
San30.1 小时前
深入理解 JavaScript:手写 `instanceof` 及其背后的原型链原理
开发语言·javascript·ecmascript
北冥有一鲲1 小时前
LangChain.js:RAG 深度解析与全栈实践
开发语言·javascript·langchain
用户28907942162712 小时前
Spec-Kit应用指南
前端
酸菜土狗2 小时前
🔥 手写 Vue 自定义指令:实现内容区拖拽调整大小(超实用)
前端
ohyeah2 小时前
深入理解 React Hooks:useState 与 useEffect 的核心原理与最佳实践
前端·react.js
Cache技术分享2 小时前
275. Java Stream API - flatMap 操作:展开一对多的关系,拉平你的流!
前端·后端
apollo_qwe2 小时前
前端缓存深度解析:从基础到进阶的实现方式与实践指南
前端