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删除
相关推荐
阿伟来咯~5 分钟前
记录学习react的一些内容
javascript·学习·react.js
吕彬-前端10 分钟前
使用vite+react+ts+Ant Design开发后台管理项目(五)
前端·javascript·react.js
学前端的小朱13 分钟前
Redux的简介及其在React中的应用
前端·javascript·react.js·redux·store
guai_guai_guai22 分钟前
uniapp
前端·javascript·vue.js·uni-app
也无晴也无风雨23 分钟前
在JS中, 0 == [0] 吗
开发语言·javascript
bysking1 小时前
【前端-组件】定义行分组的表格表单实现-bysking
前端·react.js
王哲晓2 小时前
第三十章 章节练习商品列表组件封装
前端·javascript·vue.js
fg_4112 小时前
无网络安装ionic和运行
前端·npm
理想不理想v2 小时前
‌Vue 3相比Vue 2的主要改进‌?
前端·javascript·vue.js·面试
酷酷的阿云2 小时前
不用ECharts!从0到1徒手撸一个Vue3柱状图
前端·javascript·vue.js