2021-01-20

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"声明:存在变量提升、可以重复声明、不支持块级作用域

     

    

  









原文转载:http://www.shaoqun.com/a/512336.html

跨境电商:https://www.ikjzd.com/

邮乐:https://www.ikjzd.com/w/1776

海鹰数据:https://www.ikjzd.com/w/2539


提前声明:此文章仅仅用于个人成长学习的记录。内容部分摘抄自:        一:https://github.com/qianguyihao/Web/tree/master/05-JavaScript%E4%B9%8BES6%E8%AF%AD%E6%B3%95        二:阮一峰|ECMAScript6入门。        三:https://segmentfault.com/a/11900
Zozo:Zozo
stylenanda:stylenanda
10年跨境电商创业者自白:从谷底到全年盈利 海淘复苏:10年跨境电商创业者自白:从谷底到全年盈利 海淘复苏
惠州十字水生态度假村好玩吗?:惠州十字水生态度假村好玩吗?
北京首都机场大巴到北京南站多长时间?有多远?:北京首都机场大巴到北京南站多长时间?有多远?

No comments:

Post a Comment