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删除
相关推荐
念九_ysl16 分钟前
前端循环全解析:JS/ES/TS 循环写法与实战示例
前端·javascript·typescript
anyup_前端梦工厂2 小时前
了解几个 HTML 标签属性,实现优化页面加载性能
前端·html
前端御书房3 小时前
前端PDF转图片技术调研实战指南:从踩坑到高可用方案的深度解析
前端·javascript
2301_789169543 小时前
angular中使用animation.css实现翻转展示卡片正反两面效果
前端·css·angular.js
风口上的猪20154 小时前
thingboard告警信息格式美化
java·服务器·前端
程序员黄同学4 小时前
请谈谈 Vue 中的响应式原理,如何实现?
前端·javascript·vue.js
爱编程的小庄5 小时前
web网络安全:SQL 注入攻击
前端·sql·web安全
宁波阿成5 小时前
vue3里组件的v-model:value与v-model的区别
前端·javascript·vue.js
柯腾啊5 小时前
VSCode 中使用 Snippets 设置常用代码块
开发语言·前端·javascript·ide·vscode·编辑器·代码片段
Jay丶萧邦5 小时前
el-select:有关多选,options选项值不包含绑定值的回显问题
javascript·vue.js·elementui