经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
es6-ES6 的变量声明
来源:cnblogs  作者:豌杂  时间:2021/1/25 11:11:33  对本文有异议

提前声明:此文章仅仅用于个人成长学习的记录。

内容部分摘抄自:

        一:https://github.com/qianguyihao/Web/tree/master/05-JavaScript%E4%B9%8BES6%E8%AF%AD%E6%B3%95

        二:阮一峰 | ECMAScript 6 入门。

        三:https://segmentfault.com/a/1190000020678240

ES6 的变量声明

  1:var、let 、const用来声明变量。

    1.1:var,定义全局变量( var 是 variable 的简写)。

    1.2:  let,定义局部变量,替代 var。

    1.3: const,定义常量(定义后,不可修改)。

  2:作用域:

     2.1:全局作用域

    ·  2.1.1:var在全局作用域中定义后自动赋值给window,可以使用`window.“”` 来获取出来,容易污染数据

     2.2:函数作用域 function() {}

     2.3:块级作用域 {}

  

  3:let 和 const 的特点【重要】

    3.0:赋值使用

        const命令声明常量后必须立马赋值

        let命令声明变量后可立马赋值或使用时赋值

    3.1:支持块级作用域  

    3.2:不存在变量提升

      解释:和暂时性死区有共同特定,变量不存在变量提升,都是需要先声明再使用

    3.3:禁止重复声明

      解释:在同一作用域中重复声明同一变量

    3.4:暂时性死区

      解释: 使用 let/const 声明的变量,会使区块形成封闭的作用域。若在声明之前使用变量,就会报错。

  1. const name = 'qianguyihao';
  2. function foo() {
  3. console.log(name);
  4. const name = 'hello';
  5. }
  6. foo(); // 执行函数后,控制台报错:Uncaught ReferenceError: Cannot access 'name' before initialization

    /**
    *  一共说明两个问题:
    *  1:变量“name”在函数foo外部定义了的,在函数内部重新定义一个同名的“name”变量。函数会形成一个封闭的作用域,唯一的变量为函数内部中的“name”变量。如果没有在foo函数中再次定义“name”变量就不会报错了
    * 2:这个不是重复声明变量,他们在不同的作用域中
    *
    */

    相反"var"声明:存在变量提升、可以重复声明、不支持块级作用域

     

    

  

原文链接:http://www.cnblogs.com/WanAa/p/14301423.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号