欢迎光临
我的个人博客网站

es6-ES6 的变量声明

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

内容部分摘抄自:

        一: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 声明的变量,会使区块形成封闭的作用域。若在声明之前使用变量,就会报错。

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

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

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

     

    

  

赞(0) 打赏
未经允许不得转载:张拓的天空 » es6-ES6 的变量声明
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏